【发布时间】:2020-11-19 18:21:30
【问题描述】:
我正在尝试从文件中读取并打印出文件中的内容。 文件中的数据如下所示,由 100 行和 10 列组成。
-1,0.53,1,1,1,0,0.8,1,0.5,0
这是我尝试过的:
#include <stdio.h>
#include <stdlib.h>
#define NUMBEROFINPUT 100 //100 inputs.
#define NUMBEROFCOLUMN 10 //10 rows.
int main(){
int *dataFileInput[NUMBEROFINPUT][NUMBEROFCOLUMN];
FILE *dataFileptr;
dataFileptr = fopen("group5_8.txt", "r");
if (dataFileptr == NULL){
perror("Error");
return 1;
}
for(int i = 0; i < NUMBEROFINPUT; ++i){
for(int j = 0; j < NUMBEROFCOLUMN; ++j){
fscanf(dataFileptr, " %f", &dataFileInput[i][j]);
printf("a[%d][%d] = %.2f\n", i+1,j+1, dataFileInput[i][j]);
}
}
}
但是,当我打印出结果时,我只会得到0.00。我对 C 编程还是比较陌生。我做错了什么?
【问题讨论】:
-
只需
int dataFileInput[NUMBEROFINPUT][NUMBEROFCOLUMN];就足够了,而不是int *dataFileInput[NUMBEROFINPUT][NUMBEROFCOLUMN]; -
您的
fscanf语句是否跳过输入中每个数字之间的逗号分隔符? -
@IrAM fscanf 与 %f 一起使用,而不是 int 是正确的方式
-
你声明的是一个指向 int 的指针数组。
-
不确定是否会跳过逗号。