我遇到了一些障碍,我似乎无法使这个功能正常工作。它只需要错误的输入3次(它应该连续循环,直到给出所需的输入)。
char get_char(){
char letter1, letter2;
printf("Would you like to recalculate your budget? (Y/N):");
scanf("%c%c", &letter1, &letter2);
printf("\nResult %c & %c", letter1, letter2);
while ((letter1 != 'y' && letter1 != 'n' && letter1 != 'Y' && letter1 != 'N' ) && letter2 != '\n') {
clear_buffer();
printf("Error!! Please enter Y to recalculate or N to not recalculate: ");
scanf("%c%c", &letter1, &letter2);
}
return letter1;
}
我使用printf
语句从scanf
获取结果,我得到这样的结果:
y &
n &
Y &
然后程序退出。
有什么想法吗?
编辑** 解决了。
char get_char(){
char a;
do{
printf("Would you like to recalculate your budget? (Y/N):");
scanf(" %c", &a);
}while ( a != 'y' && a != 'n' && a != 'Y' && a != 'N' );
return a;
}