这个get_char()循环有什么问题?

时间:2012-07-16 02:03:59

标签: c

我遇到了一些障碍,我似乎无法使这个功能正常工作。它只需要错误的输入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;
}

0 个答案:

没有答案