为什么 C 应用程序不先打印消息然后接收用户输入
Why is C application not printing message first then taking in user input
我正在尝试编写一个 c 应用程序来打印提示并接受用户输入。我用 fgets() 写了一个简单的程序,但它确实工作正常。我正在使用 eclipse c/c++ 工具包。当我 save>build>运行 时,控制台保持空白。如果我输入一些内容,程序就会 运行s。首先它打印 printf,然后打印我输入的输入。我尝试 运行 宁宁我在网上找到的示例程序,但它 运行 有同样的问题。有人对为什么有任何想法吗?
我想要得到的是:
"Who are you?"
输入 = "rice"
"Glad to meet you rice"
谢谢。
#include <stdio.h>
#include <stdlib.h>
int main(void) {
char name[10];
printf("Who are you? ");
fgets(name,10,stdin);
printf("Glad to meet you, %s",name);
return(0);
}
我将你的代码原封不动地粘贴到一个空白文件中,在 Ubuntu 上用 gcc 编译它,它完全按照你想要的方式运行:
j@j:~/Desktop/C$ make
gcc -Wall -Wextra -Werror -g 1.c -o 1 -lm
j@j:~/Desktop/C$ ./1
Who are you? rice
Glad to meet you, rice
这一定是 Eclipse IDE 安装环境、OS 等问题
C代码本身没问题。
问题是您没有刷新输出缓冲区。如果输出不以换行符结尾,它可能会像这种情况一样保持缓冲状态:
printf( "Who are you? " ) ;
fflush( stdout ) ;
应该可以解决问题。
我正在尝试编写一个 c 应用程序来打印提示并接受用户输入。我用 fgets() 写了一个简单的程序,但它确实工作正常。我正在使用 eclipse c/c++ 工具包。当我 save>build>运行 时,控制台保持空白。如果我输入一些内容,程序就会 运行s。首先它打印 printf,然后打印我输入的输入。我尝试 运行 宁宁我在网上找到的示例程序,但它 运行 有同样的问题。有人对为什么有任何想法吗? 我想要得到的是: "Who are you?" 输入 = "rice" "Glad to meet you rice"
谢谢。
#include <stdio.h>
#include <stdlib.h>
int main(void) {
char name[10];
printf("Who are you? ");
fgets(name,10,stdin);
printf("Glad to meet you, %s",name);
return(0);
}
我将你的代码原封不动地粘贴到一个空白文件中,在 Ubuntu 上用 gcc 编译它,它完全按照你想要的方式运行:
j@j:~/Desktop/C$ make
gcc -Wall -Wextra -Werror -g 1.c -o 1 -lm
j@j:~/Desktop/C$ ./1
Who are you? rice
Glad to meet you, rice
这一定是 Eclipse IDE 安装环境、OS 等问题
C代码本身没问题。
问题是您没有刷新输出缓冲区。如果输出不以换行符结尾,它可能会像这种情况一样保持缓冲状态:
printf( "Who are you? " ) ;
fflush( stdout ) ;
应该可以解决问题。