在C语言编程中什么时候需要用fflush(stdin)?

网上有关“在C语言编程中什么时候需要用fflush(stdin)?”话题很是火热,小编也是针对在C语言编程中什么时候需要用fflush(stdin)?寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。

fflush函数刷新一个流,可以用来防止内存地址已经占满,当把这个流指向用户标准输入(stdin)时,可以清除目前缓冲区中的内容,输入回车也会被清楚掉,例如,在scanf()之后使用fflush(stdin)是当输入缓冲区(内存)满了的时候,自动清除输入流缓冲区中所有数据,其实现在内存这么大,每次输入的数据只有几个字节,是几乎用不上的,多用上的地方是在嵌入式开发上面,因为每个固化芯片上一般只有几十K的空间,所以空间显得非常重要,此时就要用上了

fflush(stdin)这个函数是什么意思 有什么作用

1、fflush(stdin)是清空输入缓冲区的意思。stdin就是标准输入 std即standard(标准),in即input(输入),合起来就是标准输入。 一般就是指键盘输入到缓冲区里的东西。

2、在清除文件缓冲区时使用,文件以写方式打开时将缓冲区内容写入文件。

例:

#include <conio.h>

#include <io.h>

#include <stdio.h>

#include <string.h>

void flush(FILE *stream);

int main(void)

{

FILE *stream;

char msg[] = "This is a test";

/* create a file */

stream = fopen("DUMMY.FIL", "w");

/* write some data to the file */

fwrite(msg, strlen(msg), 1, stream);

clrscr();

printf("Press any key to flush DUMMY.FIL:");

getch();

/* flush the data to DUMMY.FIL without closing it */

flush(stream);

printf("\nFile was flushed, Press any key to quit:");

getch();

return 0;

}

void flush(FILE *stream)

{

int duphandle;

/* flush the stream's internal buffer */

fflush(stream);

/* make a duplicate file handle */

duphandle = dup(fileno(stream));

/* close the duplicate handle to flush the DOS buffer */

close(duphandle);

}

扩展资料

使用fflush的注意事项

1、MSDN 文档里也清楚地写着:fflush on input stream is an extension to the C standard (fflush 操作输入流是对C标准的扩充)。以下是 C99 对 fflush 函数的定义:int fflush(FILE *stream);

2、如果stream指向输出流或者更新流(update stream),并且这个更新流最近执行的操作不是输入,那么fflush函数将把任何未被写入的数据写入stream指向的文件(如标准输出文件stdout)。

3、fflush函数的行为是不确定的。fflush(NULL)清空所有输出流和上面提到的更新流。如果发生写错误,flush函数会给那些流打上错误标记,并且返回EOF,否则返回0。

4、如果 stream 指向输入流(如 stdin),那么 fflush 函数的行为是不确定的。故而使用 fflush(stdin) 是不正确的。

百度百科—fflush(stdin)

清空输入缓冲区.

你从键盘输入的所有字符被存到一个缓冲区,在你调用getchar,getch,getche,scanf等函数时,电脑从这个缓冲区取,而不一定正好是你在这个时候键盘输入的.(如果你上次从键盘的输入和程序中要求的内容不一致时).

清空之后,就是直接从你这个时候从键盘上输入的字符中读取了.

关于“在C语言编程中什么时候需要用fflush(stdin)?”这个话题的介绍,今天小编就给大家分享完了,如果对你有所帮助请保持对本站的关注!

本文来自作者[云外听箫]投稿,不代表五洲号立场,如若转载,请注明出处:https://www.tzwzszyy.cn/ylzx/202507-8986.html

(9)
云外听箫的头像云外听箫签约作者

文章推荐

发表回复

作者才能评论

评论列表(3条)

  • 云外听箫的头像
    云外听箫 2025年07月25日

    我是五洲号的签约作者“云外听箫”

  • 云外听箫
    云外听箫 2025年07月25日

    本文概览:网上有关“在C语言编程中什么时候需要用fflush(stdin)?”话题很是火热,小编也是针对在C语言编程中什么时候需要用fflush(stdin)?寻找了一些与之相关的一些信...

  • 云外听箫
    用户072509 2025年07月25日

    文章不错《在C语言编程中什么时候需要用fflush(stdin)?》内容很有帮助