c - while 循环工作不正常/意外?

标签 c

所以我有这个代码:

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(换行符)。

另请参阅:What does space in scanf mean?

关于c - while 循环工作不正常/意外?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35594165/

相关文章:

c - "for-Loop"增量的特定顺序

C 中的彩色输出到屏幕

c++ - _CrtSetAllocHook - 未处理的异常

c - 如何检查 scanf 返回的字符串是否为空

c - 尝试运行 MPI 矩阵乘法示例

c - 如何持续监控 Linux 中的进程创建?

c - 通过引用而不是值来获取数据

c - 在c中提取字符串的一部分

c - 如何编辑字符串(在 C 结构中)

c - 将 char 指针强制转换为 int 指针是未定义的行为吗?