getch、getchar、scanf的区别 getchar getch getche

1、getch()
getch()是conio.h中的库函数,它的作用是从键盘接收字符。
for(int i=0;i<10;++i)
{
charch=getch();
printf ("ch=%cn", ch );
}


2、getchar()
getchar()是stdio.h中的库函数,它的作用是从stdin流中读入一个字符,如果stdin有数据的话不用输入它就可以直接读取了。
for(int i=0;i<10;++i)
{
charch=getchar();
printf ("ch=%cn", ch );
}
getch、getchar、scanf的区别 getchar getch getche
当输了多个字符,以后的getchar()再执行时就会直接从缓冲区中读取,并显示到屏幕上。
如果我想让getchar()每次都能够等待用户输入的话就要清空缓冲区, C标准规定fflush()函数是用来刷新输出(stdout)缓存的。对于输入(stdin),它是没有定义的。但是有些编译器也定义了fflush( stdin )的实现,比如微软的VC。其它编译器是否也定义了 fflush( stdin)的实现应当查找它的手册。GCC编译器没有定义它的实现,所以不能使用 fflush( stdin )来刷新输入缓存。对于没有定义fflush( stdin )的编译器,可以使用 fgets()函数来代替它(比用getchar()、scanf()等函数通用性好)。可以这样忽略输入流中留下的回车等其它输入,从而使下一次的输入总保持一个“干净”的状态。(这个是任何平台下都可以的)


for(int i=0;i<10;++i)
{

charch=getchar();
fflush(stdin); //每次都会有等待状态了(VC平台)
printf ("ch=%cn", ch );
}


3、scanf()
scanf这个库函数比较奇怪,而且存在一定的缺陷,所以很多人都不用了。
scanf输入字符串,整型,实型等数据判断的方式都一样,回车,空格,tab键都认为是一个数据的结束,当然字符的话,一个字符就是结束了,回车,空格等都有对应的ascii码,所以用scanf输入字符时要小心这些东东被当成字符输进去,而输入字符串和整型,实型等数据时这些都被当成分隔符而不会被输入到字符数组或变量里。

  

爱华网本文地址 » http://www.aihuau.com/a/25101017/363407.html

更多阅读

final、finally、finalize的区别 sleep和wait的区别

final、finally、finalize的区别:答案:final--是为修饰符(关键字),如果一个类被声明为final的话,则此类不能被继承,因此一个类不能既被声明为final的,又被声明为abstract的;如果将一个变量声明为final的,则此变量不能被改变,只能被使用;并且此变

病句复习:顿号、逗号、分号的区别

顿号、逗号、分号的区别顿号、逗号、分号都用在句子中间表示停顿。它们之间的主要区别有三:1从停顿的时间看,顿号最短促,逗号其次,分号最长;2从是否表示并列来区别。顿号表示词和词之间的并列,分号表示分句与分句之间的并列,而逗号表示连贯

声明:《getch、getchar、scanf的区别 getchar getch getche》为网友森糸獵亻分享!如侵犯到您的合法权益请联系我们删除