【发布时间】:2017-10-03 15:08:32
【问题描述】:
我正在尝试用逗号分隔的整数填充二维数组。 我已经为 3x3 数组分配了空间。现在,我正在尝试遍历输入文本的每一行以获取整数并将它们放入数组中。
这是我目前所拥有的:
char currLine[257];
char *token;
for(int i = 0; i < size; i++){
fgets(currLine, 257, inputFile);
for(int j = 0; j < size; j++){
}
}
文本格式如下:
9,8,7
2,1,6
3,4,5
我可以成功抓住每一行,但从那里我一直遇到麻烦。在我得到每个数字之后,我当然希望它进入数组的 [i][j] 点。所以第一行对应[0],第一个值对应[0][0]。
【问题讨论】:
-
sscanf()怎么样?sscanf(currLine, "%d,%d,%d", &matrix[i][0], &matrix[i][1], &matrix[i][2]); should do it, check that it returns3. Also, try to use another check, for example esnure thatfgets()`确实读到了一些东西,你可以在fgets()之后使用if (!feof(inputFile))或者更好,检查fgets()不返回NULL。 -
我会试试这个。不过,我不熟悉 sscanf 的格式。
-
您可以使用
fscanf()直接从文件中读取。无需先将其放入带有fgets()的字符串中。