我正在尝试编写一个打印提示并接受用户输入的c应用程序。我用fgets()编写了一个简单的程序,但是它确实工作正常。我正在使用eclipse c / c ++工具包。当我保存>构建>运行时,控制台保持空白。如果输入一些信息,程序将运行。首先打印printf,然后打印我输入的输入。我尝试运行在Web上找到的示例程序,但是它遇到了同样的问题。有人对为什么有任何想法吗? 我想要得到的是: “你是谁?” 输入=“大米” “很高兴见到你米饭”
谢谢。
#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);
}
答案 0 :(得分:2)
问题是您尚未刷新输出缓冲区。如果输出未以换行符结尾,则在这种情况下,它可以保持缓冲状态:
printf( "Who are you? " ) ;
fflush( stdout ) ;
应该解决该问题。
答案 1 :(得分:1)
我将您的代码未更改地粘贴到一个空白文件中,在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设置环境,操作系统等问题。
C代码本身很好。