需要用getchar()吃掉回车的几种情况个人实验总结
2013-08-13 22:46
966 查看
写程序的时候有时会使用getchar()来接收一个字符。但程序很长的时候,有时会发生需要getchar()来接收字符的时候,运行直接跳过了。这可能就是,需要接收字符的getchar()接收了上次输入时最后的回车键,而没有正确的接收我要输入的字符。例如下面这个程序:
运行的时候我输入wuhan 回车,程序就直接结束了,不符合我的本意。这时就需要用getchar()来回收这个回车,再输入字符。
这时就运行正确了。那么到底什么时候需要用getchar()来吃掉回车呢?下面来说下我实验总结的几种情况。
1。程序开始时要接收字符ch,不需要用空的getchar();
2.当接受字符ch前面有scanf语句时,不管多远,需要用空的getchar()来吃回车,因为这时scanf的回车还在缓冲区里,上面的例子就是这种情况。
3,gets(a)后面要接收ch是不需要用空的getchar()吃回车的(下面有图)。
4;连续用2个getchar()接收字符时,中间要用一个空的getchar()来吃回车。
图上传卡住了,不传了。总之,最后再总结一次需要用空的getchar()吃掉回车的情况有2个(在目前主要接收输入函数只有scanf,gets,getchar()的情况下);
1),前面有scanf,后面要用ch=getchar()接收字符时,中间要用一个空的getchar()吃回车;
2),2个接收字符的ch=getchar()中间需要一个空的getchar()吃回车。
我们也可以在每次用getchar()接收字符前,清空输入缓冲区(我忘记那个语句了,知道了在补充。。)。
(暂时就这些。。)
运行的时候我输入wuhan 回车,程序就直接结束了,不符合我的本意。这时就需要用getchar()来回收这个回车,再输入字符。
这时就运行正确了。那么到底什么时候需要用getchar()来吃掉回车呢?下面来说下我实验总结的几种情况。
1。程序开始时要接收字符ch,不需要用空的getchar();
2.当接受字符ch前面有scanf语句时,不管多远,需要用空的getchar()来吃回车,因为这时scanf的回车还在缓冲区里,上面的例子就是这种情况。
3,gets(a)后面要接收ch是不需要用空的getchar()吃回车的(下面有图)。
4;连续用2个getchar()接收字符时,中间要用一个空的getchar()来吃回车。
图上传卡住了,不传了。总之,最后再总结一次需要用空的getchar()吃掉回车的情况有2个(在目前主要接收输入函数只有scanf,gets,getchar()的情况下);
1),前面有scanf,后面要用ch=getchar()接收字符时,中间要用一个空的getchar()吃回车;
2),2个接收字符的ch=getchar()中间需要一个空的getchar()吃回车。
我们也可以在每次用getchar()接收字符前,清空输入缓冲区(我忘记那个语句了,知道了在补充。。)。
(暂时就这些。。)
相关文章推荐
- 根据个人情况以及Java程序员面试宝典总结的需要复习的知识点
- c中的getchar();吃掉回车什么的情况
- WPF 个人经验总结:需要注意的地方
- Objective C中数组排序几种情况的总结
- Java 读取数据流的几种情况总结
- 《数据结构》实验二: 线性表综合实验——总结线性表的几种主要存储结果
- 个人总结的一个中高级Java开发工程师或架构师需要掌握的一些技能
- 模糊查询:有几种情况1.中文 2.连起来的拼音查询 3.首字母查询 需要一个jar包pinyin4j
- 【华为实验】AAA本地认证和hwtacacs配置并存的情况总结
- [转]DB2中需要REORG操作的几种情况
- Laravel输出JSON时设定输出字段的几种情况总结
- ccna实验配置个人总结
- Objective C中数组排序几种情况的总结
- js正则表达式验证密码格式的几种情况总结
- 个人理解:什么情况下需要使用protected修饰类成员变量
- 个人对整站优化需要注意的地方的总结
- 个人总结之――BGP实验
- tomcat需要的重新发布和重启服务器的几种情况
- Android中的几种内存泄露情况总结