日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【C】——C项目中的菜单功能(源码)

發布時間:2023/12/13 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【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。

轉載于:https://www.cnblogs.com/ngnetboy/archive/2013/03/14/2958789.html

總結

以上是生活随笔為你收集整理的【C】——C项目中的菜单功能(源码)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。