【发布时间】:2015-05-28 10:37:30
【问题描述】:
示例代码:
int i;
char word [10][15];
for (i = 0; i < 10; i++){
fgets(word[i], 16, stdin);
}
所以我接受(最多)10 个字符串用户输入,每个字符串的长度不能超过 15 个字符(因此为 16,因为 \n 存储在 fgets() 方法的最后一个字符位置, 正确的?)。
我的问题是当我想打印出单词数组中的单词时。发生这种情况:
输入:
abcdefghijklmnopqrstuvwxyz
输出:
abcdefghijklmnopqrstuvwxyz
pqrstuvwxyz
我不知道为什么会这样。 fgets() 似乎在输入 15 个字符后并没有停止。
编辑:
int j;
for (j = 0; j < 10; j++){
printf("%s", word[j]);
}
【问题讨论】:
-
我可以看看你的整个代码,包括你用来打印
word数组的代码吗?仅使用部分代码很难。 -
好的,我会编辑对不起
-
另外,您的语法不正确(
char[10][15] word;不是正确的 C 语法)。此代码不会编译。请发布实际代码。 -
我会立即尝试,但我在某处读到,为了接收 n 个字符,必须设置 n + 1?我可能读错了我也编辑了那部分。对此感到抱歉
-
我将 fgets 更改为 fgets(words[i], 15, stdin),但现在它只需要 14 个字符。那么如何存储15个字符呢?编辑:哦,我明白了,谢谢