比较C中的字符

时间:2011-09-09 22:38:42

标签: c

我有一个简单的问题。我有一个名为test()的方法。我的代码看起来像:

void test() 
{

    char c;
    printf("Are you happy?\n");
    printf("Hit y for yes or n for no \n");
    scanf("%d", &c);

    if(c == 'y') 
    {
        printf("That's awesome!\n");
    } 
    else 
    {
        printf("That is too bad.\n");
    }
}

当我运行代码时,不会读取输入。我认为我的问题在于“如果(c =='y')”“有谁能告诉我我做错了什么/如何修复它?谢谢!

p.s我有一个主要的方法等。

4 个答案:

答案 0 :(得分:4)

这会扫描int

scanf("%d", &c);

这会扫描char

scanf("%c", &c);

答案 1 :(得分:0)

用于读取单个scanf值的正确char格式说明符为"%c"。您正在使用"%d"。格式说明符"%d"旨在专门用于int个收件人参数。您为什么要尝试将"%d"char一起使用?

答案 2 :(得分:0)

您应该将其更改为scanf("%c", &c)

答案 3 :(得分:0)

您的问题是scanf,它应该有%c来阅读char

有关scanf

的详细信息,请参阅here