【发布时间】:2017-02-09 02:59:27
【问题描述】:
int GetUserInput(char *userStart,char *userDestination){
char firstLetter,secondLetter;
while(1){
printf("\nEnter starting position: ");
scanf(" %c",&firstLetter);
if (firstLetter == 'x' || firstLetter=='X'){
return 1;
}
printf("Enter destination position: ");
scanf(" %c",&secondLetter);
if (secondLetter == 'x' || secondLetter=='X'){
return 1;
}
if (!((firstLetter<'a' && firstLetter>'O') || (firstLetter<'A' && firstLetter>'O'))){
if (!((secondLetter<'a' && secondLetter>'o') || (secondLetter<'A' && secondLetter>'O'))){
break;
}else{
PrintErrorMessage(2);
printf("second\n");
}
}else{
PrintErrorMessage(1);
printf("first\n");
}
}
*(userStart) = firstLetter;
*(userDestination) = secondLetter;
return 0;
}
我输入了一些错误的输入,但是,错误信息不显示,它只是重复提示再次输入。
输出:
输入起始位置:n
目标位置:v输入起始位置:
预期输出:
输入起始位置:n
输入目标位置:v
“错误信息”
输入起始位置:
【问题讨论】:
-
请提供minimal reproducible example 以及准确 输入和预期输出(不是某种表示形式)。你甚至没有展示循环结构。
-
你的条件都错了。
e.g. secondLetter<'a' && secondLetter>'o'。该条件总是为假。a之前 和o之后的 字母怎么能同时出现?