用getchar()输入多个字符时怎样用fflush()函数消除回车的影响?原理又是什么?
发布网友
发布时间:2022-04-29 23:29
我来回答
共3个回答
热心网友
时间:2023-10-10 10:10
fflush(stdin)刷新标准输入缓冲区,把输入缓冲区里的东西丢弃
fflush(stdout)刷新标注输出缓冲区,把输出缓冲区里的东西打印到标准输出设备上
例子:
#include<stdio.h>
void main()
{
int i;
char ch;
for(i=1;i<10;i++)
{
ch=getchar();
fflush(stdin);
printf("%c\n",ch);
}
}
热心网友
时间:2023-10-10 10:10
用fflush 清空输入缓冲区本身就是错的, fflush是用来清空输出缓存区的!!!
windows个别编译器,比如vc,实现了fflush(stdin), 但是很多都只支持fflush(sdtout)
所以你应该用fgets或者其他什么方式!
热心网友
时间:2023-10-10 10:11
没什么原理,无非是回车符也会保留在输入缓冲区内,影响到下一次字符输入而已。
fflush(stdin);就是清空输入缓冲区。