У меня возникло много проблем, пытаясь понять, как использовать scanf()
. Кажется, что он отлично работает с целыми числами, будучи довольно прямым scanf("%d", &i)
.
Когда я сталкиваюсь с проблемами, я использую scanf()
в циклах, пытаясь прочитать ввод. Например:
do {
printf("counter: %d: ", counter);
scanf("%c %c%d", &command, &prefix, &input);
} while (command != 'q');
-
Когда я вхожу в корректно структурированный ввод, например
c P101
, он, кажется, снова зацикливается, прежде чем запрашивать меня. Это похоже на одно:scanf("%c", &c)
в цикле while. Он повторит цикл дважды, прежде чем снова спросить меня. Что делает цикл дважды, и как его остановить?
-
Когда я вхожу в меньшее количество входных данных, которые программным образом не будут иметь другого символа или номера, например
q
, нажатие клавиши ввода подсказывает мне ввести больше. Как мне получитьscanf()
для обработки как одиночных, так и двойных символов?