c - 循环跳过 C 中的第二个输入

标签 c arrays string

<分区>

我试图用一些字符填充一个简单的数组,我的循环看起来像这样

for(i = 0; i <= 6; i++) {
    printf("Enter each value of the plate number:");
    scanf("%c", &arr[i]);
    printf("i = %d\n", i);
}

当我执行循环时,我是这样的,

Enter each value of the plate number:A
i = 0
Enter each value of the plate number:i = 1
Enter each value of the plate number:B
i = 2
Enter each value of the plate number:i = 3
Enter each value of the plate number:C
i = 4
Enter each value of the plate number:i = 5
Enter each value of the plate number:D
i = 6

我不知道为什么我要跳过每 2 次获取用户输入的机会。

最佳答案

试试这个 scanf("%c", &arr[i]);(%c 前有空格)

或者 scanf("%c\n", &arr[i]);

您遇到此问题是因为 scanf 将输入保留在输入缓冲区中。

关于c - 循环跳过 C 中的第二个输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52769786/

相关文章:

c++ - 现在我们有了 std::array C 风格的数组还有什么用途?

java - Java Arithmetic 中的字符串(评估混合类型表达式)

c - C 中的 snprintf() 不单独处理目标字符串的最低两个字节

c - 如何在不将其作为 C 函数的返回值的情况下修改 int 指针?

c - 可能溢出C

arrays - 贤者 : MemoryError: Unable to allocate ___for an array with shape ___ and data type float64

c - 从文件填充二维数组

连续字符串

c - 如何释放c中双向链表程序的内存

C++ cout 字符串打印其内存值