栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言,关于getchar()清空回车符的几点经验

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言,关于getchar()清空回车符的几点经验

最近被getchar()弄的有点糊涂,现在基本缕清了。

拿程序举个例子:

#include
int main(void)
{
	
	char ch1,ch2;
	printf("Iam testing *********.n");
	
	printf("So hard! ***********n");
	
	
	ch1=getchar();
	
	printf("$$$$$$$%c$$$$$$$n",ch1);
	
	getchar();
	
	ch2=getchar();
	
	printf("$$$$$$$$$$$%c$$$",ch2);
	
	return 0;
}

这里要说明的是:  

1、 
  printf("Iam testing *********.n");
    
    printf("So hard! ***********n");  这两个语句并不会在缓存中留下  n 符。

所以在第一个 ch1=getchar() 前面不需要加上 getchar().

加了反而是错的, 缓存中没有字符,如果是  getchar().

                                                                        ch1=getchar()

输入一个字符后,反而会把字符丢掉,而把 n  赋给了 ch1.  

2,  用于   清空缓存中回车符的  getchar(),  可以放在 ch1=getchar() 的后面,也可以放在 ch2=getchar() 的前面,  但是  二者只能取其一,不能同时都用。

3、如果是 循环,则要注意 循环产生的问题,   这时 如果ch1=getchar() 的后面没有 ch2=getchar()  ;  那么ch2=getchar() 的前后都要加上 getchar() 用于清除缓存中的n。

如下程序

#include
int main(void)
{
	
	char ch1,ch2;
	printf("Iam testing *********.n");
	
	printf("So hard! ***********n");
	
	while(ch1!='a')
	
	{
	ch1=getchar();
	
	printf("$$$$$$$%c$$$$$$$n",ch1);
	
	getchar();
	
	ch2=getchar();
	
	getchar();
	printf("*********%c******n",ch2);
		
	}
	
	printf("Done!n");
	
	return 0;
}

或者 ch1   ch2  赋值语句后各加一个getchar(), 都是可以的。

总之,就是要将输入时的 回车符  处理掉。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/429583.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号