该程序运行正常。
int main()
{
{
printf("Type something:\n");
char* message = malloc(64 * sizeof(char));
fgets(message,64,stdin);
printf("message ist : %s\n",message);
free(message);
}
}
但是当我运行以下程序时,它不会让我写任何东西,它会显示“ message ist:”
int main()
{
char action;
while(action!='e')
{
printf("print a line: p\n");
printf("End Program: e\n");
action = getc(stdin);
if(action == 'p')
{
fflush(stdin);
printf("Type something:\n");
char* message = malloc(64 * sizeof(char));
fgets(message,stdin);
printf("message ist : %s\n",message);
free(message);
}
else if(action == 'e')
{
printf(" Program ended successfully\n");
exit(0);
}
}
}
有人解释为什么它让我在第一个程序中输入吗? 为什么不能让我输入第二个程序?
我尝试清除键盘输入,但没有用。
我尝试使用getline()
而不是fgets()
,结果相同。
如果有任何想法和解释,我将不胜感激。