Вызов scanf("%c")
не пропускает пробелы (см. scanf
).
c Соответствует последовательности символов счетчика ширины (по умолчанию1);следующий указатель должен быть указателем на символ, и должно быть достаточно места для всех символов (завершающий NUL не добавляется). Обычный пропуск начального пробела подавляется. Чтобы сначала пропустить пробел, используйте явный пробел в формате.
Таким образом, он читает любую строку, заканчивающуюся символом, оставшуюся вбуфер после прочтения первого целого числа.
Чтобы явно пропустить пробел, вы можете заменить его на:
scanf(" %c", &operand);
Обратите внимание, что если пользователь вводит 123 + 234
и нажимает ввод в первом приглашениидва следующих scanf
s не будут ждать ввода, а просто обработают +
и 234
.
Если это проблема, вместо этого прочитайте целые строки и используйте sscanf
.