【发布时间】:2017-03-05 11:58:23
【问题描述】:
我试图从下面的文件中只读取浮点数,不包括 2D 数组中的所有月份和地区的名称,然后打印 2D 数组但没有得到正确的输出,(输出是零和垃圾值) 请检查我的代码并尝试提供帮助。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char* argv[]){
FILE *f=fopen("Monthly_Rainfall_Himachal.txt","r");
float data[12][12];
int i,j;
char newLine[1000];
fgets(newLine,1000,f);
char* item;
fgets(newLine,1000,f);
while(!feof(f)){
for(i=0;i<12;i++){
item=strtok(newLine,"\t");
for(j=0;j<12;j++){
item=strtok(NULL,"\t");
data[i][j]=atof(item);
}
fgets(newLine,1000,f);
}
}
for(i=0 ;i<12 ;i++){
for(j=0 ;j<12 ;j++){
printf("%.1f\t",data[i][j]);
}
printf("\n");
}
return 0;
}
【问题讨论】:
-
看起来你正在做很多
sscanf会为你做的工作。 -
您能否详细说明一下如何操作,因为我是一个完整的初学者:)
-
谷歌
scanf example。 -
Stackoverflow 上有几个例子。例如,请参阅this question and answer。您可以在 Stackoverflow 上搜索
[c] sscanf text file或[c] fscanf text file。您也可以使用fscanf,它将直接解析。您还可以通过 Google 搜索sscanf或fscanf的使用情况并找到大量信息。 -
第一次测试
FILE *f=fopen("Monthly_Rainfall_Himachal.txt","r");是否成功。
标签: c multidimensional-array input file-io