我正在尝试让用户输入一串字符。我希望我的程序继续一次扫描一个字符,直到它看到\n
字符(即,当用户按下ENTER键时)。
看来我写的代码由于某种原因没有将字符存储到数组中。我知道这一点,因为包含for
语句的printf()
循环不会重现输入终端的字符。我的最后努力是打印a[0]
以防万一我的循环出现问题,但它仍然显示没有任何内容存储到我的字符数组中。
有任何解释吗? (请不要建议我使用string.h
库 - 我不希望将它用于我的目的。)
#include <stdio.h>
int main(void)
{
char a[21];
int i;
printf("enter a bunch of characters: ");
for (i = 0; ; i++)
{
scanf("%c", &a[i]);
if (a[i] = '\n')
{
break;
}
}
printf("the size of char array is %d\n", sizeof(a)/sizeof(a[0]));
for (i = 0; a[i] != '\0'; i++)
{
printf("%c", a[i]);
}
printf("%c", a[0]);
return 0;
}
答案 0 :(得分:0)
if (a[i] == '\n') { break; }
如上所述修改if语句并检查。