我一直在试图弄清楚如何使用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
,按 Enter 似乎提示我输入更多。如何scanf()
处理单字符和双字符条目?