вложенные операторы if и чтение типа данных char в обоих операторах

#include<stdio.h>
#include<conio.h>
void main()
{
    char a, b;
    scanf("%c",&a);
    if(a=='n')
    {
        scanf("%c",&b);
        if(b=='n')
        {
            printf("sucessful");
        }
    }
    else
        printf("fail");
    getch();
}

проблема с чтением кода переменной 'b'. Почему он не может прочитать переменную «b». Он будет работать, когда тип данных int или float. Помогите пожалуйста с логикой.


person Madan Pandey    schedule 18.02.2015    source источник
comment
Что именно вы вводили? Я уверен, что код работает именно так, как вы его написали, даже если это не то, что вы хотели. Но вы забыли сказать нам, что вы имели в виду.   -  person Ben Voigt    schedule 18.02.2015


Ответы (1)


Вы можете использовать цикл do while, чтобы понять это. 'do' выполняется 0 или более раз, в то время как "пока" содержит условие. Это может вам помочь.

person Kashif    schedule 18.02.2015
comment
спасибо, что ответили на мой вопрос. Я нашел решение проблемы, когда мы используем %s вместо %c с помощью scanf(). НО все же я застрял в логике, стоящей за этим... может ли кто-нибудь помочь мне, почему %c не работает и почему %s работает нормально... Если кто-нибудь мне поможет, я буду более чем благодарен.... - person Madan Pandey; 24.02.2015
comment
В вашем операторе if требуется преобразование типа. Пожалуйста, перейдите по этой ссылке. stackoverflow.com/questions/1010330/c-comparison-char -и-инт - person Kashif; 24.02.2015