eclipse中c程序与终端同步

7lrncoxx  于 2022-11-23  发布在  Eclipse
关注(0)|答案(1)|浏览(138)

终端与程序不同步。
这是我的简单代码,看看它是否工作:

#include <stdio.h>

int main(void){
   puts("Hello World!");
   system("pause");
   return 0;
}

但是在本地终端中Press a key to continue...出现在Hello World!之前
这意味着它与程序不同步,如何解决?

i7uaboj4

i7uaboj41#

问题可能是在执行函数system之前,输出缓冲区没有得到刷新。
为了显式刷新输出缓冲区,您可以添加以下行

fflush( stdout );

就在调用system之前。
在大多数平台上,标准的输出流是行缓冲的,因此应该没有必要刷新输出缓冲区,因为puts会自动向字符串添加一个换行符,这应该会导致自动刷新行缓冲流。标准输出流在Eclipse中似乎不是行缓冲的,而是全缓冲的。

相关问题