我开始用c ++进行桌面编程,当我运行以下代码时:
#include <stdio.h>
int main (int argc, char ** argv){
enum{ max_string = 127};
static char string[max_string + 1] = "";
printf("Type in a line\n");
fgets(string,max_string,stdin);
printf("the string is %s\n",string);
return 0;
}
在Eclipse中运行程序时,我没有看到“输入行”提示。相反,如果我只输入一个回复,我会看到我输入的跟随:
Type in a line
the string is Hello World
为什么在我输入输入之前它不首先显示提示“输入一行”?
答案 0 :(得分:0)
您需要刷新输出缓冲区。我刚刚添加了std::cout << std::endl;
并添加了<iostream>
。我建议您开始使用std::cout
而不是printf
。它的类型安全。我在Eclipse内部进行了测试,没有刷新,线条没有显示,而是使用刷新线。
如果您不想要转移到<iostream>
,我刚刚从fflush(stdout)
测试了<stdio.h>
,它也有效。但是,我强烈鼓励这一举动,stdio.h是C的标准,iostream是C ++的标准,因为你正在学习C ++ ......