【发布时间】:2016-12-05 04:23:23
【问题描述】:
我正在尝试将文本文件中的数字读入数组。文本文件“snumbers.txt”有 5 行,每行 10 个数字,所有数字都用空格分隔:
11 10 23 3 23 98 39 12 9 10
10 23 23 23 23 2 2 2 2 2
…etc…
我的代码:
#include <stdio.h>
int main()
{
FILE *myFile;
myFile = fopen("snumbers.txt", "r");
//read file into array
int numberArray[100][100];
int i;
}
如果我访问numberArray[1][1],我该怎么做,它会给我数字“23”。
【问题讨论】:
-
使用两个
for循环,第二个在第一个下测试。 -
如果您确定输入数据使用循环相应地读取到数组。 for(){for(){}}
-
请注意,您的示例输入数据似乎与您的 5x20 声明不相关。您显示两行数字,每行有 10 个数字。真正的数据格式是什么?使用
fscanf()读取数字有什么问题? -
@JonathanLeffler 我说过等等......数字并不重要,这就是没有“”的格式
-
文件的格式有所不同。特别是,您是否费心检查是否只有 5 行并且每行有 20 个数字,或者您最终是否检查文件和布局中至少有 5 x 20 = 100 个数字,这会有所不同根本不重要,或者您是否坚持在文件中恰好有 100 个数字。有很多方法可以做到这一点。使用
fscanf()意味着你放弃了线路检查;使用fgets()然后sscanf()意味着您可以检查每行的正确数量。如果没有您提供的准确信息,我们将无法为您提供很好的帮助。
标签: c arrays multidimensional-array fopen