首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

fflush(stdin)函数不起作用

问题fflush(stdin) 函数为什么不起作用?

答案fflush(stdin) 函数不起作用,因为它用于清除标准输入流。然而,在程序中,该函数接收的参数应该是一个输出流指针。因此,fflush(stdin) 是不正确的,应该使用 fflush(stdout) 代替。

名词解释

  • fflush(stdin):用于清除标准输入流。
  • fflush(stdout):用于清除标准输出流。

分类

  • fflush(stdin):属于 C 语言中的 I/O 函数。
  • fflush(stdout):属于 C 语言中的 I/O 函数。

优势

  • fflush(stdin)fflush(stdout) 的主要优势在于它们能够确保输出流(或输入流)的数据被正确地写入到磁盘或显示到终端。

应用场景

  • fflush(stdin)fflush(stdout) 通常用于在程序运行期间,清除不完整的数据输出或输入。

推荐的腾讯云相关产品

  • 腾讯云云开发:一个支持快速开发、部署和运维 Web 应用和 API 的平台。

产品介绍链接

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

fflush函数

函数名: fflush 功 能: 清除读写缓冲区,需要立即把输出缓冲区的数据进行物理写入时 头文件:stdio.h 原型:int fflush(FILE *stream) 其中stream是要冲洗的流...fflush()会强迫将缓冲区内的数据写回参数stream 指定的文件中....如果参数stream 为NULL,fflush()会将所有打开的文件数据更新 fflush(stdin)刷新标准输入缓冲区,把输入缓冲区里的东西丢弃[非标准] fflush(stdout)刷新标准输出缓冲区...;后面加fflush(stdout);可提高打印效率 如果stream指向输出流或者更新流(update stream),并且这个更新流最近执行的操作不是输入,那么fflush函数将把任何未被写入的数据写入...否则,fflush函数的行为是不确定的。fflush(NULL)清空所有输出流和上面提到的更新流。如果发生写错误,flush函数会给那些流打上错误标记,并且返回EOF,否则返回0。

67120

C++中fflush()函数与rewind()函数

参考链接: C++ fflush() fflush()函数与rewind()函数都可以使得scanf()函数屏蔽之前输入的回车符。这两个函数的参数都可以是stdin变量。...1 stdinstdin一起使用的还有stdout和stderr,这三个变量都是FILE结构的指针,在stdio.h头文件中定义。...2 fflush()函数函数的作用是清空在“1 stdin”中提到的三种流。 2.1 强制显示输出缓冲区 fflush(stdout); 以上代码的功能是将与输出流关联的缓冲区的内容在屏幕上显示。...printf(“Hello World”); fflush(stdout); 2.2 清空输入缓冲区 fflush(stdin); 以上代码的功能是清空输入缓冲区中的内容。...scanf(“%d”, &i); fflush(stdin); scanf(“%d”, &j); 3 rewind()函数 也可以是用rewind()函数来清理输入缓冲区中的数据,达到屏蔽回车符号的作用

89100

【C 语言】文件操作 ( fflush 函数 | 刷新缓冲区示例代码 )

文章目录 一、fflush 函数 二、内存缓冲区示例 三、使用 fflush 函数刷新内存缓冲区示例 一、fflush 函数 ---- 缓冲区内容写入磁盘的时机 : 缓冲区满了 调用 fclose 关闭文件函数...如果想要立刻写入磁盘 , 可以使用 fflush 函数刷新缓冲区 , 将缓冲区中的数据 , 写入磁盘中 ; fflush 函数原型 : 将缓冲区中未写入磁盘中的数据写入磁盘中的文件中 ; #include... int fflush(FILE *stream) fflush 函数可以实时将缓冲区中的数据写入磁盘中 , 强烈不推荐频繁大量调用该函数 , 读写磁盘速度很慢 , 浪费性能 , 浪费时间..., array); } // 关闭文件 fclose(p); return 0; } 执行结果 : 输入 " exit " , 退出循环 , 调用 fclose 函数关闭文件..., 此时才将内存缓冲区中的数据 , 写出到文件中 ; 三、使用 fflush 函数刷新内存缓冲区示例 ---- 代码示例 : 与上面的示例不同之处 , 就是在每次刷新完成之后 , 调用 fflush

1.8K20

关于stdin流以及缓冲区浅谈

1,、使用fflush(stdin)或者rewind(stdio);都可以起到清空缓冲区的作用,这俩个函数都包含在stdio.h这个头文件中 补充:(具体讲rewind(stdin)是把文件指针回绕到文件起始处...fflush(stdin)是把文件输入缓冲区清0) 2、或者下面这种方法(经典):int c; while((c = getchar()) != '\n' && c !...修改后如下: #include int main() { char a; char b; scanf("%c",&a); fflush(stdin); scanf("%c",&b);...输入流将处于出错状态,调用clear是用来清除cin函数留下的错误标记的,然后才能调用fflush()方法来清除缓冲区的数据,当然用fflush方法可能移植性不好,(据说在GCC3.2不支持),由于我是在...VC6.0下的编译的程序,所以这样是支持的,另外c++有很多别的清除缓冲区的函数,像ignore函数也可以。

1.1K20

一文带你读懂CC++语言输入输出流与缓存区

如果我想让getchar()每次都能够等待用户输入的话就要清空缓冲区,下面就介绍不同平台的方法 C标准规定 fflush()函数是用来刷新输出(stdout)缓存的。...对于输入(stdin),它是没有定义的。但是有些编译器也定义了 fflush( stdin )的实现,比如微软的VC。其它编译器是否也定义了 fflush( stdin )的实现应当查找它的手册。...GCC编译器没有定义它的实现,所以不能使用 fflush( stdin )来刷新输入缓存。...对于没有定义 fflush( stdin )的编译器,可以使用 fgets()函数来代替它(比用 getchar()、scanf()等函数通用性好)。...在windows 的vc下面就可以这样了: for(int i=0;i<10;++i) {     char ch=getchar();     fflush(stdin); //每次都会有等待状态了

1.2K31

江哥带你玩转C语言 | 05-printf 和 scanf 函数

printf函数 printf函数称之为格式输出函数,方法名称的最后一个字母f表示format。...scanf函数用于接收键盘输入的内容, 是一个阻塞式函数,程序会停在scanf函数出现的地方, 直到接收到数据才会执行后面的代码 printf函数的调用格式为: scanf("格式控制字符串", 地址列表...方法清空缓冲区(不是所有平台都能使用) 格式: fflush(stdin); C和C++的标准里从来没有定义过 fflush(stdin) MSDN 文档里清除的描述着"fflush on input...stream is an extension to the C standard" (fflush 是在标准上扩充的函数, 不是标准函数, 所以不是所有平台都支持) 利用setbuf方法清空缓冲区(所有平台有效...(stdin); // 清空输入缓存区 setbuf(stdin, NULL); // 清空输入缓存区 char ch2; int num3; scanf("%c%d",

1K00

一文带你读懂CC++语言输入输出流与缓存区

如果我想让getchar()每次都能够等待用户输入的话就要清空缓冲区,下面就介绍不同平台的方法 C标准规定 fflush()函数是用来刷新输出(stdout)缓存的。...对于输入(stdin),它是没有定义的。但是有些编译器也定义了 fflush( stdin )的实现,比如微软的VC。其它编译器是否也定义了 fflush( stdin )的实现应当查找它的手册。...GCC编译器没有定义它的实现,所以不能使用 fflush( stdin )来刷新输入缓存。...对于没有定义 fflush( stdin )的编译器,可以使用 fgets()函数来代替它(比用 getchar()、scanf()等函数通用性好)。...在windows 的vc下面就可以这样了: for(int i=0;i<10;++i) { char ch=getchar(); fflush(stdin); //每次都会有等待状态了

1.8K31

一文读懂CC++语言输入输出流与缓存区

如果我想让getchar()每次都能够等待用户输入的话就要清空缓冲区,下面就介绍不同平台的方法 C标准规定 fflush()函数是用来刷新输出(stdout)缓存的。...对于输入(stdin),它是没有定义的。但是有些编译器也定义了 fflush( stdin )的实现,比如微软的VC。其它编译器是否也定义了 fflush( stdin )的实现应当查找它的手册。...GCC编译器没有定义它的实现,所以不能使用 fflush( stdin )来刷新输入缓存。...对于没有定义 fflush( stdin )的编译器,可以使用 fgets()函数来代替它(比用 getchar()、scanf()等函数通用性好)。...在windows 的vc下面就可以这样了: for(int i=0;i<10;++i) { char ch=getchar(); fflush(stdin); //每次都会有等待状态了

1.3K20
领券