【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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/259960.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/259960.shtml
英文地址,請注明出處:http://en.pswp.cn/news/259960.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

a 中調用js的幾種方法

我們常用的在a標簽中有點擊事件&#xff1a;1. a href"javascript:js_method();"這是我們平臺上常用的方法&#xff0c;但是這種方法在傳遞this等參數的時候很容易出問題&#xff0c;而且javascript:協議作為a的href屬性的時候不僅會導致不必要的觸發window.onbefore…

MapReduce實現手機上網日志分析(分區)

一、問題背景 實際業務的需要&#xff0c;比如以移動為例&#xff0c;河南的用戶去了北京上網&#xff0c;那么他的上網信息默認保存在了北京的基站&#xff0c;那么我們想要查詢北京地區的上網日志信息默認也包含了其他地區用戶的在本區的上網信息&#xff0c;否則只能掃描日志…

肺功能曲線圖怎么看_如何看肺功能結果報告單

收藏進澤 2006-05-18 22:34:46常規通氣功能&#xff1a;所有的指標都要在預計值的80&#xff05;以上&#xff0c;一秒率要在70&#xff05;以上(因為低于70&#xff05;就是COPD).FVC低于80&#xff05;&#xff0c;診斷限制性通氣&#xff1b;一秒率低于70&#xff05;&#…

html 模板配置,模板文件配置

模板文件一定要小寫下劃線&#xff0c;如 list_pubu.html你可以給你每一個模板文件增加一個json配置文件,用于描述這個模板文件;配置文件和模板文件名是同名的,只是后綴為 json,如simpleboot3/portal/index.html模板文件的配置文件就是simpleboot3/portal/index.json;一個簡單的…

POJ 3009 Curling 2.0(簡單DFS)

題意&#xff1a; 每一次碰到障礙則在障礙的旁邊停下來&#xff0c;并且障礙被擊碎。此時可以重新值擲一次冰球。當擲球次數超過 10 次則輸出 -1。 思路&#xff1a; 1. 超過 10 次輸出 -1 這個剪枝很關鍵&#xff1b; 2. 主要是要注意些邊界條件&#xff0c;初始化的情況&…

封裝 oschina.net 表情選擇

1. [代碼]jquery.facial.js //從OSCHINA.NET 提取出來的 表情選擇 插件 by zhouxiang //如果有不滿足的地方 可以自己改改 沒事隨便寫寫的 style 和 html 都被我弄到JS里了 這樣方便簡潔jQuery.fn.extend({ facial: function (opts) { var _self this, _this $…

JNI學習積累之一 ---- 常用函數大全

本文原創&#xff0c;轉載請注明出處&#xff1a;http://blog.csdn.NET/qinjuning 最近一段時間&#xff0c;在工作方面比較閑&#xff0c;分配的Bug不是很多&#xff0c;于是好好利用這段時間就著源代碼看了些許模塊&#xff0c; 主要方式 還是賊看賊看代碼&#xff0c; 同時利…

計算機專業四次評估,教育部第四次“計算機專業”學科評估,四所高校獲A+評級...

隨著2017年權威的第四次學科評估結果出爐后&#xff0c;相信很多高校學科上實力的爭議應該可以平息了。這也是國內官方的學科排名&#xff0c;一共分為12等。入圍學科的最高等級為A&#xff0c;最低評級為C-&#xff0c;如果在同一評級內&#xff0c;按學校代碼先后依次排序。本…

正則領悟

入門 學習正則表達式的最好方法是從例子開始&#xff0c;理解例子之后再自己對例子進行修改&#xff0c;實驗。下面給出了不少簡單的例子&#xff0c;并對它們作了詳細的說明。 假設你在一篇英文小說里查找hi&#xff0c;你可以使用正則表達式hi。 這幾乎是最簡單的正則表達式了…

微軟風格的CSS橫向菜單

<head> <meta http-equiv"Content-Type" content"text/html; charsetgb2312" /> <title>水平導航菜單&#xff08;DIVCSS&#xff09;</title> <style type"text/css"> body{ background: #FFF; font-family: Ari…

php函數庫快速記憶法_PHP速成大法

簡單介紹一下PHP的語法1、嵌入方法&#xff1a;類似ASP的&#xff0c;當然您也可以自己指定。2、引用文件&#xff1a;引用文件的方法有兩種&#xff1a;require 及 include。require 的使用方法如 require("MyRequireFile.php"); 。這個函數通常放在 PHP 程序的最前…

html css精靈,談談CSS Sprites(css精靈)

CSS Sprites在國內很多人叫css精靈&#xff0c;其實這個技術不新鮮&#xff0c;這個技術老到什么程度呢&#xff0c;我不敢確定&#xff0c;但是我看到最早的關于CSS Sprites是在Dave Shea的《CSS Sprites: Image Slicing’s Kiss of Death》&#xff0c;時間是March 05, 2004 …

分布式搜索 Elasticsearch —— 節點實例化

為什么80%的碼農都做不了架構師&#xff1f;>>> 要連接到集群&#xff0c;首先要告訴集群&#xff1a;你是誰&#xff0c;你有什么特征。在 ES 中體現為實例化節點。 ES 通過 org.elasticsearch.node.NodeBuilder 的 build() 或者 node() 方法實例化節點&#xff0…

計算幾何/sgu 124 Broken line

題意 給出由n條線段圍成的多邊形&#xff08;每條邊均平行于坐標軸&#xff09;&#xff0c;以及一個點(x0,y0)&#xff0c;問這個點是在形內或是形外或是形上 分析 對于在線段上&#xff0c;比較容易判斷&#xff0c;直接比較一下坐標的位置即可&#xff1b; 若不在形上&#…

(轉)在ios android設備上使用 Protobuf (使用dll方式)

自&#xff1a;http://game.ceeger.com/forum/read.php?tid13479 如果你的工程可以以.Net 2.0 subset模式運行&#xff0c;請看這個帖子中的方法。 地址&#xff1a;http://game.ceeger.com/forum/read.php?tid14359&fid27 如果只能以.Net 2.0下運行&#xff0c;就可以繼…

ps 毛發 邊緣_Adobe Photoshop摳圖技巧/摳圖后頭發邊緣的顏色處理方法教程!

PS教學第1&#xff11;期摳圖技巧和摳圖后的頭發邊緣的顏色處理的解釋本篇摳圖技巧教程除了跟大家分享了摳頭發的方法外&#xff0c;還分享如何解決摳頭發后頭發周圍的異色&#xff0c;如白邊紫邊等問題。教程作者沒有提供素材&#xff0c;大家可以找其他圖片來練習。有些時候想…

計算機運維知識點,系統運維必會知識點

1 刪除文件的原理文件刪除&#xff1a;需要具備以下兩個條件同時具備才生效1受文件的硬連接控制&#xff0c;有一個硬連接i_link1,減少一個硬連接&#xff0c;i_link-1,當i_link0時&#xff0c;文件就被刪了列&#xff1a;創建文件i_link1,為這個文件創建一個硬連接&#xff0c…

Hyper-v 2016 VHD Set

Hyper-v 2016 VHD Set微軟在Windows Server 2016 Hyper-v中新增了一種磁盤類型--“VHD集”&#xff0c;和以前版本的共享VHD類似&#xff0c;這種類型的磁盤能夠在多個服務器之間共享來實現來賓群集。看到這里相信有很多熟悉Hyper-v的朋友會問&#xff1a;這和以前的 Share VHD…

【總有一些東西要弄清】——說說面試時一系列的CSS問題

僅以此篇緬懷那些筆試100次&#xff0c;問100次的CSS問題。 問&#xff1a; CSS選擇符有哪些&#xff1f;哪些屬性可以繼承&#xff1f;優先級&#xff1f;內聯和important哪個優先級高&#xff1f; 選擇符 1通配選擇符&#xff08;*&#xff09;表示頁面內所有元素的樣式*{fon…

面試總結之html+css

最近面試了一些公司&#xff0c;和技術總監聊了一些前端技術方面的內容。回來之后我總結了一下&#xff0c;大致可以分為三個模塊&#xff1a;第一、Html與css 方面&#xff1b;第二、瀏覽器解析方面&#xff1b;第三、js方面。打算&#xff0c;分為三篇博文&#xff0c;根據自…