我有这个 apply() 函数,它由用户输入数字调用。在输入“2”(检查它的数字然后将其转换为整数)时它起作用了,我可以输入名称,然后在它们之间输入空格(这就是练习中指定的方式),但是,当我第二次输入“2”时,它会打印出“你的名字:”,或者有时它会让我输入我的名字,然后打印出“你希望工作的日子:”然后程序就停止了,没有任何错误代码,甚至不打印 apply() 函数的最后一行。
int main(){
int choice = 9;
while(choice != 0){
choice = getActionFromUser();
executeAction(choice);
}
}
int getActionFromUser(){
char actionId[20];
printf("\nYour action: ");
fflush(stdout);
scanf("%s", actionId);
int res = -1;
if(isNumber(actionId)){
res = atoi(actionId);
}
if(res >=0 && res <= 5){
return res;
}
return -1;
}
void apply(){
printf("\n_________________________________\n");
printf("Application form");
printf("\n_________________________________\n");
//Name
printf("Your name: ");
fflush(stdout);
char name[256];
scanf("%[^\n]%*c",name);
fflush(stdin);
//Day
printf("The days you choose: ");
char days[256];
fflush(stdout);
scanf("%[^\n]%*c",days);
fflush(stdin);
printf("\n_________________________________\n"); //<--- This
}
void executeAction(int choice){
switch (choice)
{
//more code
case 2:
apply();
break;
//more code
}
}