Сравнение символов в Си - PullRequest
       1

Сравнение символов в Си

0 голосов
/ 10 сентября 2011

У меня быстрый вопрос. У меня есть один метод под названием 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");
    }
}

Когда я запускаю код, ввод не читается. Я думаю, что моя проблема в строке "if (c == 'y')" Может кто-нибудь сказать мне, что я делаю неправильно / как это исправить? Спасибо!

p.s У меня есть основной метод и т. Д.

Ответы [ 4 ]

4 голосов
/ 10 сентября 2011

Это сканирование для int:

scanf("%d", &c);

Это сканирование для char:

scanf("%c", &c);
0 голосов
/ 10 сентября 2011

Ваша проблема scanf, она должна иметь %c для чтения char

См. здесь для более подробной информации о scanf

0 голосов
/ 10 сентября 2011

Вы должны изменить его на scanf("%c", &c)

0 голосов
/ 10 сентября 2011

Правильный спецификатор формата scanf для чтения одного значения char - "%c".Вы используете "%d".Спецификатор формата "%d" предназначен для использования исключительно с int аргументами получателя.Почему вы пытаетесь использовать "%d" с char?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...