在for循环中获取多个字符输入

时间:2014-02-04 15:44:29

标签: c

char c;
int i;
for(i=0;i<5;i++)
{
 printf("Enter a character : ");`
 scanf("%c",&c);
}
getch();

上面的代码无法正常工作。它只能输入3次。我无法找到它的解决方案。请帮忙。谢谢!

3 个答案:

答案 0 :(得分:4)

这是因为下一次迭代中\n会读取前一个scanf留下的新行字符scanf。在%c说明符前放置一个空格以使用\n

scanf(" %c",&c);  
       ^Notice the space

答案 1 :(得分:0)

char c是单个字符变量。

在您的代码中,您正在一次又一次地读取字符并将其存储到c中,每次都会有效地覆盖它。如果您想输入多个字符,请考虑同样使用character array

#include <stdio.h>

int
main (void)
{
    char c[5];
    int  counter;

    for (counter = 0; counter < 5; counter++)
      {
        printf ("Enter a character: ");
        scanf  ("%c\n", &c[i]);
      }

     printf ("The string you input is %s\n", c);

     return 0;
}

答案 2 :(得分:0)

假设您在屏幕上输入abc,那么它实际上需要输入5个输入 输入1: a
输入2: \n
输入3: b
输入4: \n
输入5: \n

换行也被视为输入