我是使用Eclipse的C语言初学者,我正在尝试读取2个文件并编写它,这样每行就有4个单词。这段代码属于一个函数,我在两个不同的文件上调用它。我打开并关闭了输入文件fin和输出文件fout。这两个文件都存在。
char word[15];
int i = 0;
while (fscanf(fin, "%s", word) != EOF) {
fprintf(fout, "%s ", word);
i++;
if (i > 3) {
fprintf(fout, "\n");
i = 0;
}
}
如果我写控制台而不是文件,这段代码就能工作。但是,当我按这里所示运行它从而将其写入输出文件时,文件中不会写入任何内容。在不增加i的情况下,将word打印到文件中没有问题。
我已经打印出了i和word的值,以便在增量后直接进行控制台,并且看起来我被正确地重置了。文件1似乎已被完全读取并写入控制台,但没有写入输出文件。对于文件2,代码会正确地打印所有要控制台的内容,直到它击中逗号为止,并且不会将任何内容写入输出。当逗号被移除时,文件1的几行被写入文件和文件2打印,但是几乎所有的单词都缺少字母。
这里怎么了?我不确定是否存在局部问题,因为这段代码几个小时前就起作用了。谢谢。
发布于 2020-06-20 14:15:08
问题解决了,文件中有超过14个字符的单词,不适合我的字符串变量。
https://stackoverflow.com/questions/62492194
复制相似问题