c - printf 打印不正确

标签 c file-io

我有代码提示用户输入文件名,然后在控制台上显示文件的内容。但是,我使用的 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 中仍然存在。

最佳答案

尝试在第一个 printf 之后添加 fflush(stdout);,我认为问题在于 printf 没有刷新它的缓冲区。

编辑:看起来这是一个 known bug in Eclipse ,解决方法是将缓冲区大小设置为零(检查代码的注释)。

关于c - printf 打印不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12719297/

相关文章:

c - SDL - 段错误(核心转储),有什么想法吗?

c++ - 有没有一种方法可以防止将以前运行的值存储在 txt 文件中(防止覆盖)?

java - 如何确定java中文件每一行的字节数?

c - fgets 不起作用 -

c - 预期错误 : ,

c - 在 C 语言中使用 Hangman 游戏函数时出现问题

c - 为什么地址栏中的 UTF-8 Unicode 与 GET 形式在 C 中有所不同?

c - C中结构中的字符串数组

C++ 忽略空的第一行

python - IO错误 : [Errno 0] Error in Python