【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.mzph.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;根据自…