如何在c中从标准输入到数组中读取字符?

如何在c中从标准输入到数组中读取字符?,c,gcc,stdin,fflush,C,Gcc,Stdin,Fflush,我上一次做C是在1991年,现在我在帮一个朋友做家庭作业 他必须将stdin中的字符放入数组中。看起来很简单。我想我会用的 我们有: printf("Input the line\n"); i=read(0, arg, sizeof(char)*9); IIUC获取字符,根据答案注释,我们应该能够将字符直接放入arg数组,如下所示: while ((c = getchar()) != '\n' && c != EOF && i2<9

我上一次做C是在1991年,现在我在帮一个朋友做家庭作业

他必须将stdin中的字符放入数组中。看起来很简单。我想我会用的

我们有:

    printf("Input the line\n");
    i=read(0, arg, sizeof(char)*9);
IIUC获取字符,根据答案注释,我们应该能够将字符直接放入arg数组,如下所示:

   while ((c = getchar()) != '\n' && c != EOF  && i2<9 ) {
     arg[i2] = c;
     i2++;
   }

所以看起来,即使我试图通过添加
i2将其限制为索引[0,8],我也不明白您在这里想做什么

   while ((c = getchar()) != '\n' && c != EOF  && i2<9 ) {
     arg[i2] = c;
     i2++;
   }
您正在将
9
字符读取到
arg
中,但您在
\n
中输入了
11
字符

因此,
arg
将包含内容

  123 456 (null)   <---contents
  01234567 8       <---indexes

123456(空)是的,我也不太明白:)@Ole你明白了吗?如果需要的话,我会努力解释。好的-明白了-很好的解释。我认为我们正在努力做到这一点:
i=read(0, arg, sizeof(char)*9);
  123 456 (null)   <---contents
  01234567 8       <---indexes