【发布时间】:2013-11-22 17:24:20
【问题描述】:
我的程序编译正常,但是当它调用 getinput() 函数时它从不提示输入。
编辑显示更多代码,我添加了 fflush 但由于某种原因它仍然跳过它。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
main(){
char mystring[] = "It's equal to it. ";
int k = 32;
int e;
printf("Enter a number: ");
scanf("%d",&e);
if(e == k){
printf("\n\n%s\n",mystring);
} else if(e < k){
printf("\n\n%d\n",e);
} else {
getinput();
}
exit(0);
}
int getinput(){
char gettext[64];
printf("Enter text here: ");
fflush(stdout);
fgets(gettext, 64, stdin);
printf("\n\nYou entered: %s\n\n",gettext);
return 0;
}
【问题讨论】:
-
你的标题说它跳过了
fgets,但你的问题更多的是关于printf。 -
@WillBD 看起来这个问题是一个不同的问题,因为混合了
scanf和fgets。 -
啊,很好,直到我提出我的意见后,我才看到你的评论(因此重新阅读了这个问题),很好。
-
@WillBD 事实证明你是有先见之明的。他在问题中添加了更多代码。
-
@Barmar 是的,但是在 getinput 函数中没有使用 scanf,所以我不明白为什么这很重要。