如何在c中从标准输入到数组中读取字符?
我上一次做C是在1991年,现在我在帮一个朋友做家庭作业 他必须将stdin中的字符放入数组中。看起来很简单。我想我会用的 我们有:如何在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
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