终端与程序不同步。这是我的简单代码,看看它是否工作:
#include <stdio.h> int main(void){ puts("Hello World!"); system("pause"); return 0; }
但是在本地终端中Press a key to continue...出现在Hello World!之前这意味着它与程序不同步,如何解决?
Press a key to continue...
Hello World!
i7uaboj41#
问题可能是在执行函数system之前,输出缓冲区没有得到刷新。为了显式刷新输出缓冲区,您可以添加以下行
system
fflush( stdout );
就在调用system之前。在大多数平台上,标准的输出流是行缓冲的,因此应该没有必要刷新输出缓冲区,因为puts会自动向字符串添加一个换行符,这应该会导致自动刷新行缓冲流。标准输出流在Eclipse中似乎不是行缓冲的,而是全缓冲的。
puts
1条答案
按热度按时间i7uaboj41#
问题可能是在执行函数
system
之前,输出缓冲区没有得到刷新。为了显式刷新输出缓冲区,您可以添加以下行
就在调用
system
之前。在大多数平台上,标准的输出流是行缓冲的,因此应该没有必要刷新输出缓冲区,因为
puts
会自动向字符串添加一个换行符,这应该会导致自动刷新行缓冲流。标准输出流在Eclipse中似乎不是行缓冲的,而是全缓冲的。