char c;
int i;
for(i=0;i<5;i++)
{
printf("Enter a character : ");`
scanf("%c",&c);
}
getch();
上面的代码无法正常工作。它只能输入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)
假设您在屏幕上输入a
,b
和c
,那么它实际上需要输入5个输入
输入1: a
输入2: \n
输入3: b
输入4: \n
输入5: \n
换行也被视为输入