flushall()函数的用法

flushall()函数的用法flushall()函数如下所示的一个非常简单的程序.1#include2voidmain(void)3{4charcA,cB;5printf("inputcAandcB:\n");6scanf("%c",&cA);7scan

大家好,欢迎来到IT知识分享网。flushall()函数的用法"

flushall()函数

如下所示的一个非常简单的程序.

1 #include 
2 void main(void)
3 {
4     char cA,cB;
5     printf("input cA and cB:\n");
6     scanf("%c",&cA);
7     scanf("%c",&cB);
8     printf("Now they are:%c\t%c\n",cA,cB);
9 }

 

本意思是从键盘接受两个字符,然后反馈到屏幕上.
比如我要输入A和B,那么希望得到的结果是Now they are:A   B

但结果却只显示了:A
为什么是这样的结果呢?因为我们输入了一个A后会习惯性的按一个回车,告诉系统我输入了一个A.
但是编译系统却不这么认为,它会以为我们输了一个A,然后又输入了一个回车.
所以结果显示了一个A和一个看不见的回车.

又如以下这个程序:

1 #include 
2 void main(void)
3 {
4     char cA,cB;
5     printf("input cA and cB:\n");
6     scanf("%c%c",&cA,&cB);
7 
8     printf("Now they are:%c\t%c\n",cA,cB);
9 }

 

我们连续输入AB.然后回车,则会显示A   B.
所以在输入字符型变量时务必小心.

其实我们也可以借助flushall()函数来解决这个问题.
flushall()函数能清除键盘缓冲区的内容.程序如下:

 1 #include 
 2 void main(void)
 3 {
 4     char cA,cB;
 5     printf("input cA and cB:\n");
 6     scanf("%c",&cA);
 7     flushall();
 8     scanf("%c",&cB);
 9     printf("Now they are:%c\t%c\n",cA,cB);
10 }

 

和程序1比较我们能明显看见加了一个flushall();在输入了A然后按了回车之后.
此处,flushall的用处是清除了回车.
然后我们接着输入B.回车.
结果一样正确!
                
                
                

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/60641/showart_483344.html

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/30897.html

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信