Прочитайте символ и число в c

63
4

Я пытаюсь прочитать символ и число со следующим:

char c;
char plus = '+';
int last;
if(scanf("%c%d",&c,&last)!=2 || last<0){
printf("fail\n");
return 1;
};

//trying to test it
if(plus==c){
// code
}

Но когда я запускаю программу и набираю + 100, она бросает "сбой", поскольку scanf не удалось. Но если я просто набираю 100, это работает. Почему "сбой" печатается, когда есть один символ (+) и номер (100), и почему это не так, если я просто набираю номер.

спросил(а) 2021-01-25T13:45:13+03:00 4 месяца, 4 недели назад
1
Решение
63

Ваш код в порядке, за исключением a; попробуйте это, он работает:

 #include <stdio.h>

int main( )
{
test();
}

int test()
{
char c;
char plus = '+';
int last;
if ( scanf( "%c%d", &c, &last ) != 2 || last < 0 )
{
printf( "fail\n" );
return 1;
} ///////////// YOU HAD UNNEEDED ; HERE
else
{
printf( "\nyou entered:\n%c,%d", c, last );
getchar( );
}
//trying to test it
if ( plus == c )
{
// code
}
}

ответил(а) 2021-01-25T13:45:13+03:00 4 месяца, 4 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема