2D 배열의 파일에서 숫자를 읽으려고합니다. 첫 번째 행과 첫 번째 열을 건너 뛰고 나머지는 모두 배열에 저장해야합니다. 'sscanf, fscanf 및 심지어 strtok()를 사용하여 시도했지만 비참하게 실패했습니다. 그래서이 문제를 해결하도록 도와주세요. 사전에 고맙습니다,특수한 방식으로 파일에서 부동 소수점을 읽음
#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,waste;
i=0;
while(1)//read file line by line
{
fscanf(f, "%s %f %f %f %f %f %f %f %f %f %f %f %f ", waste, &data[i][0], &data[i][1], &data[i][2], &data[i][3], &data[i][4], &data[i][5], &data[i][6], &data[i][7], &data[i][8], &data[i][9], &data[i][10], &data[i][11]);
i++;
if(feof(f))break;
}
fclose(f);
for(i=0 ;i<12 ;i++){
for(j=0 ;j<12 ;j++){
printf("%.1f\t",data[i][j]);
}
printf("\n");
}
return 0;
}
왜'fscanf'의 반환 값을 확인하지 않습니까? –
'char waste'는 단일'char'이지만'% s' 형식은 배열이 필요합니다. 심지어 그것은'char * waste' (당신이 상상할 수 있듯이) 할당 된 메모리가 없습니다. –