无法比较多个角色

时间:2013-01-27 19:57:11

标签: c char scanf getchar

我写了两个程序。在第一个我没有使用getchar从键盘中取一个字符,在这种情况下,编译完全没有第二个scanf。所以为了克服这一点,我使用了getchar。在这种情况下,我成功地提供了输入,但没有进行比较。虽然我输入的输入为“d”,而“d”输出仅为“再见”。

#include<stdio.h>
main(){
    char c,f;
    printf("e");
    scanf("%c",&c);
    printf("one more");
    scanf("%c",&f);
    if(c=='d'&&f=='d')
        printf("hi");
    else
        printf("bye");

}
使用getchar

#include<stdio.h>
 main(){
    char c,f;
    printf("e");
    scanf("%c",&c);
    printf("one more");
    scanf("%c",&f);
    getchar();
    if(c=='d'&&f=='d')
        printf("hi");
    else
        printf("bye");

}

1 个答案:

答案 0 :(得分:2)

新行字符将保留在标准输入中,因为scanf("%c")不会使用它。这意味着第二个scanf()读取换行符charcacter,而不是下一个输入。更改为scanf(" %c")将是一个解决方案,它将跳过前导空格。