所以我有这个代码:
char inputs[10] = "";
int numInputs = 0;
while (numInputs < 10){
char c;
printf("Enter char %i: ",numInputs);
scanf("%c",&c);
numInputs++;
}
我只是尝试用用户输入的 10 个字符值填充数组。当我运行这个时,它只允许我输入其他循环的输入(?)。这就是控制台的样子 -
输入字符 0: c
输入字符 1: 输入字符 2:r
输入字符 3: 输入字符 4:r
输入字符 5: 输入字符 6:r
输入字符 7: 输入字符 8:r
输入字符 9:程序以退出代码结束:0
这里有我遗漏的挑剔的东西吗?
最佳答案
改变
scanf ("%c", &c);
到
scanf (" %c", &c);
正如 @haris 提到的,该空间用于消耗由前一个 scanf
引起的输入缓冲区中留下的 \n
(换行符)。
关于c - while 循环工作不正常/意外?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35594165/