Проблема с вводом символов '+' и '-' через scanf на C
Доброго времени суток всем. При написании кода возникла следующая проблема: при попытке ввести число, когда на вход подается символ, программа уже не могла считать повторно символы + или - . Вот код:
int main() {
int a ;
char c;
scanf("%d", &a);
scanf("%c", &c);
printf("%d", c);
return 0;
}
Любые символы, кроме указанных двух вводятся и выводятся корректно, а при + или - получаю "10", т.е. считывается почему-то пробел.
Как можно решить данную проблему? Заранее спасибо всем, кто откликнется.
Ответы (2 шт):
Самый простой вариант- это указать в первом scanf() знак разделителя(whitespace). тогда , после ввода первого числа, введенный вами пробел(или пробелы, табуляция(ии), перенос(ы) строки) будет(ут) пропущен(ы). И следующий непустой символ попадет в 'c'
int main() {
int a ;
char c;
scanf("%d ", &a);
// ^ тут добавляем пробел
scanf("%c", &c);
printf("%d", c);
return 0;
}
Просто объедините инструкции:
int main() {
int a ;
char c;
scanf("%d %c", &a, &c); // >> 10 +
printf("%d", c); // << 43
return 0;
}