我的代码提示用户输入文件名,然后在控制台上显示文件的内容。但是,我使用的printf()语句直到最后才打印出来,因此用户不知道输入文件名。
int main(int argc, char * argv[]){
printf("%s", "What file would you like to open?\t");
char filename[100];
scanf("%[^\n]", filename);
printf("You chose:\t%s\n", filename);
return 0;
}
程序当前扫描控制台,然后打印出两个printf()语句。 scanf()语句正常工作,而不是在正确的时间。知道我的问题是什么吗?
编辑:从命令行运行时程序正常工作,但问题仍然存在于Eclipse中。
答案 0 :(得分:4)
尝试在第一个printf之后添加fflush(stdout);
,我认为问题在于printf
没有刷新它的缓冲区。
编辑:似乎它是known bug in Eclipse,解决方法是将缓冲区大小设置为零(检查代码的注释)。