我正在尝试读取文件并打印出文件中的内容。
文件中的数据如下所示,由 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 编程还很陌生。我究竟做错了什么?
您还可以使用另一种方法getline https://man7.org/linux/man-pages/man3/getline.3.html
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define NUMBEROFINPUT 2 //100 inputs.
#define NUMBEROFCOLUMN 10 //10 rows.
int main(){
int i, j;
float dataFileInput[NUMBEROFINPUT][NUMBEROFCOLUMN];
FILE *dataFileptr;
char* aline = NULL;
size_t size = 0;
dataFileptr = fopen("group5_8.txt", "r");
if (dataFileptr == NULL){
perror("Error");
return 1;
}
while(getline(&aline, &size, dataFileptr) != -1)
{
line[strcspn(aline, "\n")] = 0;
char * sep = strtok(aline, ",");
printf("%s\n", sep);
while((sep = strtok(NULL, ",")) != NULL)
{
printf("%s\n", sep);
}
}
return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)