sscanfで構造体へ格納したいのですが…
Posted: 2007年8月20日(月) 12:39
main.cppでoriginal.txtを読み込んで構造体に移そうとしたのですが、 コンパイルは成功するのですが、実行をするとエラーが発生してしまいます。 コメント化してある方ではうまくいくので、ファイルの受け渡しに問題があるかと思うのですが、 分かりませんでした。 ご助力お願いします。 --original.txt-- たお 22,1 たおう 12,2 っかい 45,3 -- -- --main.cpp-- #include <stdio.h> #include <stdlib.h> #define N1 64 #define N2 256 typedef struct person { char name[10]; int age; } Person; void File(char s1[/url][N2], int count); int main() { FILE *fin, *fout; char r_f_name[N2] = "original.txt"; char w_f_name[N2] = "txt.txt"; char s1[N1][N2], s2[N1][N2], s3[N1][N2]; int count=0, i, j, s; if( (fin = fopen(r_f_name, "r")) ==NULL ){ printf("ファイルが見つかりません。"); exit(1); } if( (fout = fopen(w_f_name, "w")) ==NULL ){ printf("ファイルへの書き出しが失敗しました。"); exit(1); } while ( fgets(s1[count++], N2, fin ) !=NULL); File(s1, count-1); fclose(fin); fclose(fout); return 0; } void File(char s1[/url][N2], int count) { int i; char name[20]; int age, ag; Person p[3]; for(i=0; i < count; i++){ sscanf(s1,"%s %d,%d", p.name, p.age, &ag); printf("%s : %d %d\n",p.name, p.age, ag); } } /* //成功 void File(char s1[/url][N2], int count) { int i; char name[20]; int age, ag; for(i=0; i < count; i++){ sscanf(s1,"%s %d,%d", name, &age, &ag); printf("%s : %d %d\n",name, age, ag); } } */ -----------------------------------------------------------------------