ページ 11

ファイルへの書き込み

Posted: 2009年5月15日(金) 14:04
by ほのか
添付ファイルのソースをご覧いただきたいのですが、このソースの処理を終了する最後の関数内で、登録した名前等をファイルに書き込んでから終了させたいのですが、どうすれば良いのでしょうか?;
いろいろ試してみましたがよくわかりませんでした…
よろしくお願いします。

Re:ファイルへの書き込み

Posted: 2009年5月15日(金) 16:06
by non
まず、fopenしたファイルはfcloseしましょう。
プログラムの最初でファイルを読み込んだら、ほかの処理をする前に閉じた方がいいので、
mainの考え方を変えましょう。
if((fp = fopen(path,"r"))==NULL){
    printf("File Open ERROR\n");
    return 1;
}
ファイルの読み込み
すでにあるいろんな処理
書き込むために再度fopen
書き込み
のように作りましょう。

ところで、while(1)でmainを作るのはやめましょう。
exit(0)でプログラムを終了するのは感心しません。

Re:ファイルへの書き込み

Posted: 2009年5月15日(金) 16:22
by pooka
void write(Jusyoroku *data,int cnt,char *path){
	FILE *fp;
	int i;

	if((fp = fopen(path,"w")) == NULL){
		printf("file open error\n");
		exit(1);
	}

	for(i=0;i<cnt;i++){
		fprintf(fp,"氏名:%s\n",data.name);
		fprintf(fp,"郵便番号:%s\n",data.yubin);
		fprintf(fp,"住所:%s\n",data.add);
		fprintf(fp,"電話番号:%s\n",data.tel);
		fprintf(fp,"性別:%s\n",data.sei);
		fprintf(fp,"\n");
	}

	fclose(fp);
}

こんなかんじでファイルに書き込む関数を作ってみてはどうでしょうか?

ファイルを読み込むのであればファイルへの書き方を読み込みやすいように書き換えてください。

Re:ファイルへの書き込み

Posted: 2009年5月15日(金) 16:39
by ほのか
回答ありがとうございます。
無事書き込みができました!ありがとうございました^^