fflush(stdout)没有效果
时间: 2023-07-13 17:28:41 浏览: 115
基于C语言fflush()函数的使用详解
如果 `fflush(stdout)` 没有刷新标准输出缓冲区,可能是因为程序的标准输出被重定向了。在重定向标准输出时,程序的输出不再直接打印到终端上,而是被重定向到其他地方(例如文件、管道等),这时 `fflush(stdout)` 将无法刷新终端上的缓冲区。
如果您确定程序的标准输出被重定向了,可以尝试使用其他方法来刷新缓冲区,例如使用 `setvbuf()` 函数。您可以在程序开头添加以下代码来强制将标准输出的缓冲区设置为无缓冲模式:
```
setvbuf(stdout, NULL, _IONBF, 0);
```
这样,程序的输出将不再被缓存,而是直接输出到终端上。注意,这种方式可能会影响程序的性能,因为输出操作将变得更加频繁。
阅读全文