**已关闭。**此问题为not reproducible or was caused by typos。当前不接受答案。
这个问题是由打字错误或无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
16小时前关门了。
Improve this question
我有一个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
}
}
1条答案
按热度按时间yc0p9oo01#
原来这是segfault在我的代码的其他地方,但在windows上我没有得到一个错误信息,我尝试了我的mac上,我看到它在那里。