C语言 fflush(stdin)是什么意思

来源:百度知道 编辑:UC知道 时间:2024/05/20 11:22:04

清空输入缓冲区。
scanf("%d",&a);
scanf("%c",&c);
经常如果这种情况的话,第一次输入的回车可能会被第二次输入操作所捕捉,这个的作用就是清空缓冲,这样就不会出现这种情况了。

fflush(stdin)
stdin 是标准输入设备。键盘,鼠标。

理论上,执行fflush(stdin) 将会清空 缓冲存储器,但因为这不是 C/ C++ 的标准,到底 能不能 清空标准输入设备的 缓冲存储器 要检查确认,不同的编译器是不同的。

见:
http://www.cplusplus.com/reference/clibrary/cstdio/fflush.html

清除文件缓冲区,文件以写方式打开时将缓冲区内容写入文件

没有你后面说的那个。

例子:
#include <string.h>
#include <stdio.h>
#include <conio.h>
#include <io.h>
void flush(FILE *stream);
int main(void)
{
FILE *stream;
char msg[] = "This is a test";
stream = fopen("DUMMY.FIL", "w");
fwrite(msg, strlen(msg), 1, stream);
clrscr();
printf("Press any key to flush DUMMY.FIL:");
getch(