代码应该读取用户输入的文本文件名,将每个字符复制到一个多维数组中,然后用标准输出显示它。它编译,但产生难以理解的文本。我错过了什么吗?
for (i = 0; i < BIGGEST; i++) {
for (j = 0; j < BIGGESTL; j++) {
if (fgetc(array, fp) ) != EOF)
array[i][j] = c;
else array[i][j] = '\0'
}
fclose(fp);
return 0;
}
最佳答案
当遇到 EOF 时,您会停止填充数组,但无论如何都会打印出完整的数组。
如果从文件中读取的数据小于输入数组,您将读入该数据,然后打印出该数据,以及内存位置中未被文件中的数据覆盖的任何随机字符。
由于需求似乎是打印文本数据,所以可以在数组中插入一个特殊的标记(例如'\0')来指示遇到EOF的位置,并在到达该标记时停止显示数据。
关于c - 读取文本文件,复制到 C 中的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19364491/