运行以下代码时,我没有输出,但我找不到原因。
# include <stdio.h>
int main()
{
fputs("hello", stdout);
while (1);
return 0;
}
没有while循环它可以很好地工作但是只要我添加它就没有输出。当然它应该在开始循环之前输出?它只是在我的系统上吗?我是否需要冲洗某种缓冲区或什么?
提前致谢。
答案 0 :(得分:5)
你必须刷新stdout
。当您编写换行符时,会自动发生这种情况。将fputs
更改为:
fputs("hello\n", stdout);
或者:
fputs("hello", stdout);
fflush(stdout);
答案 1 :(得分:0)
为什么要这样? stdio函数不知道外面发生了什么,肯定不会知道无限循环即将到来。仅当缓冲区已满或明确请求时才会刷新缓冲区。
答案 2 :(得分:0)
我想问这个问题有助于我找到解决方案。 fflush(..)
需要冲洗答案 3 :(得分:0)
fflush(stdout);