为什么没有任何东西被保存到我的角色阵列?

时间:2015-12-11 02:06:06

标签: c arrays scanf

我正在尝试让用户输入一串字符。我希望我的程序继续一次扫描一个字符,直到它看到\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;
}

1 个答案:

答案 0 :(得分:0)

if (a[i] == '\n') { break; }

如上所述修改if语句并检查。