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);
}
}
*/
-----------------------------------------------------------------------