【发布时间】:2012-08-21 19:17:40
【问题描述】:
我是 C 编程的完全初学者,所以请耐心等待。我正在尝试在控制台中输入用户的文件名,并且我想打印一条有用的消息,提示用户输入他想要打开的文件名。但是当我在命令提示符下运行它时,光标首先等待输入,在我输入一些文本并按回车后,我看到了我想在输入之前打印的有用提示。这是代码sn-p。
char filename[40];
fputs("enter the file name: ", stdout);
fflush(stdout);
fgets(filename, sizeof(filename), stdin);
我看不出我哪里出了问题。如果有人能解释为什么会发生这种情况,我将不胜感激。
【问题讨论】:
-
我没有发现您的代码有任何问题。
-
详细说明我的问题。我正在尝试将此 C 程序转换为 gnuarm 汇编代码。所以我正在使用 arm 网站的 gnu 工具链提供的 gcc 编译器。我认为这不重要,但是我不知道如何解决这个问题。这似乎是微不足道的。
-
这个 C 代码看起来不错。即使您请求了,您的
stdout似乎也没有被正确刷新。我怀疑您的 stdio 库在这方面有一些怪癖。 -
在哪个操作系统中?你能请吗?检查fflush的返回值,如果是0?
-
我拿走了你的代码并添加了 printf("%s\n",filename);最后,编译并运行它。它打印我输入的文件名。这不是你得到的吗?
标签: c console user-input