zoukankan      html  css  js  c++  java
  • 【C】——C项目中的菜单功能(源码)

     1 #include<stdio.h>
     2 #include<stdlib.h>
     3 
     4 int menu()        //选择菜单
     5 {
     6     int result;
     7     printf("**********请选择:***********\n");
     8     printf("**********1.插入:***********\n");
     9     printf("**********2.删除:***********\n");
    10     printf("**********3.遍历:***********\n");
    11 
    12     result = get_int();    
    13     while(result > 6 || result < 1)
    14     {
    15         printf("请输入1-3!\n");
    16         result = get_int();
    17     }
    18         return result;
    19 }
    20 
    21 int get_int()            //得到整型(不完善)
    22 {
    23     int input;
    24     char ch;
    25     while(scanf("%d",&input) != 1)
    26     {
    27         while((ch = getchar()) != '\n');
    28         printf("输入格式不对,请重新输入!\n");
    29     }
    30     getchar();
    31     return input;
    32     
    33 }
    34 
    35 char get_first()    //得到第一个字符(不完善)
    36 {
    37     char c,ch;
    38     scanf("%c",&c);
    39     while(getchar() != '\n')
    40         continue;
    41     
    42     return c;
    43 }
    44 
    45 
    46 int get_int()    //完善版      
    47 {
    48     int value;
    49     while(scanf("%d",&value) != 1)
    50     {
    51         while(getchar() != '\n');
    52         printf("格式不对,请重新输入!\n");
    53 } 54 while(getchar() != '\n'); 55 return value; 56 } 57 58 char get_first()      //完善版 59 { 60 char value; 61 scanf("%c",&value); 62 while(value == '\n' || value == 32) //value不能等于换行符和空格符 63 { 64 scanf("%c",&value);
          while(getchar() != '\n');
    65 } 66 while(getchar() != '\n'); //截掉多余的字符串 67 return value; 68 } 69 70 71 int main(void) 72 { 73 do 74 { 75 switch(menu()) 76 { 77 case 1: printf("1\n");break; 78 case 2: printf("2\n");break; 79 case 3: printf("3\n");break; 80 } 81 do 82 { 83 printf("是否要继续操作?(y/n)"); 84 ch = get_first(); 85 }while(ch != 'y' && ch != 'Y' && ch != 'n' && ch != 'N'); 86 }while(ch == 'y' || ch == 'Y'); 87 88 }

       本文主要介绍菜单功能,有主函数,menu()菜单函数,getfirst()获取字符函数,getint()获取整数函数,四个函数构成;主函数和menu()函数自不必说,主要是getfitst()函数和getint()函数;

      getfirst()函数的功能是获取第一个输入的字符;我们首先要做的就是先获取用户输入的字符,然后判断用户输入的字符是否为换行或者是空格(根据自己的需要随意添加条件),如果符合括号的条件则把用户输入的剩余字符串截取掉,当最后一个字符为'\n'为止。然后重新获取用户输入的字符串,再进行判断;这样做的好处就是防止用户在上一个输入函数中没有处理好'\n'的现象。如果上一个输入是scanf("%d",&value);然后用户输入一个5之后按下回车进行下一个输入。而此时如果跳到getfirst()函数中,则第一个接收的字符串就是'\n',而不是之后用户想要输入的那个字符了。因此在这里我们需要对用户输入的字符进行判断,做适当的截取字符串工作,把此次用户输入的'\n'给截取掉;

      getint()函数的功能是获得一个int型整数,此函数的思想和getfirst()函数差不多,有一点需要解释的是scanf()函数,大家似乎都在用scanf()函数做数据的输入,但是scanf()还有一个功能就是具有返回值。如果输入的格式和scanf()函数定义的格式一样的话,就会返回1。

  • 相关阅读:
    java中排序算法
    maven常用命令
    Team_GJX模板整理
    BZOJ 4128
    BZOJ 1169: [Baltic2008]Grid
    Codeforces Round #448 (Div. 2)
    HDU 5942
    2016 ICPC 沈阳
    2016 ICPC 北京
    2016 CCPC 杭州
  • 原文地址:https://www.cnblogs.com/ngnetboy/p/2958789.html
Copyright © 2011-2022 走看看