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。

  • 相关阅读:
    卡特兰数
    hdu 1023 Train Problem II
    hdu 1022 Train Problem
    hdu 1021 Fibonacci Again 找规律
    java大数模板
    gcd
    object dection资源
    Rich feature hierarchies for accurate object detection and semantic segmentation(RCNN)
    softmax sigmoid
    凸优化
  • 原文地址:https://www.cnblogs.com/ngnetboy/p/2958789.html
Copyright © 2011-2022 走看看