rewind(stdin)和fflush(stdin) 的有什么区别(意义,用法等等)
发布网友
发布时间:2022-04-24 16:00
我来回答
共2个回答
热心网友
时间:2023-11-09 17:32
语法上 ,
rewind(stdin) 是把文件指针回绕到文件起始处。
fflush(stdin) 是把文件输入缓冲区清0。
stdin 是标准输入设备(输入流),通常是键盘。(但也可以是通过转向的文本文件。)
------------
昨天有人问,数入123,第2句输入语句不能工作
int a1;
char s[20];
scanf("%d",&a1); //第一句输入语句
scanf("%[^'\n']",s); // 第2句输入语句
printf("a1=%d\n s=%s\n",a1,s);
--------------
答:添上fflush(stdin); 就可以了。
int a1;
char s[20];
scanf("%d",&a1); //第一句输入语句
// rewind(stdin);
fflush(stdin);
scanf("%[^'\n']",s); // 第2句输入语句
printf("a1=%d\n s=%s\n",a1,s);
添上 rewind(stdin) 效果相同。
---------追问那有没有什么只能用其中一个而另一个不适用的例子呢?
热心网友
时间:2023-11-09 17:32
fflush() 是立即从缓冲输出。
rewind()回到文件起始。