課題 23 二つのファイルの照合 マッチング 問題 2 追加問題 変更が必要な部分を考えます 追加1 売り上げファイルに無い在庫マスターファイルのデータに関して、問題 1 では次々と読むだけでしたが、問題 2 では 新しい在庫マスターにそのまま書き出す(複写する) 必要があります。これは、P.5 の流れの中で在庫マスターを読んでいる⑦の 部分で、 fprintf(ファイルポインタ、”書式“、 ・・・) として書き出します。ファイルポインタ部分についてはファイルオープンで 説明します。 追加2 売り上げデータファイルにある在庫マスターのデータは,在庫マスターの 在庫数を変更して書き出します。これは、P.5 の流れの中で正誤判定をして いる⑨の部分で mnum = mnum-unum; // fprintf(ファイルポインタ、”書式“、 ・・・) として、書き出します。 追加3 在庫マスターの残りのデータを繰り返し書き出す処理が必要です。プリント P.3 の上部分の図を見て下さい。仮に、売り上げデータが 103 20 の 1 件だけだと考えましょう。在庫マスターは 103 のデータ部分で読み込み が終わりますから、残りの 104,111 のデータは読み込まれません。従って、 while( 在庫マスターが空ではない合田){ 在庫マスターを読む 新しい在庫マスターファイルに書き出す } という処理を最後に加えて下さい。 追加4 新しい在庫マスターに対するファイルオープン 新しい在庫マスターをファイルとして作る必要がありますからファイル ポインタが更にもう一つ必要になります。 新しいファイルの名前は,コマンドラインから kadai23 ↑ master.dat ↑ 実行プログラム argv[0] 第1引数 argv[1] uriage.dat ↑ newmaster.dat↓ ↑ 第2引数 argv[2] 第3引数 argv[3] として指定ますから、argv[3]を使ってファイルを w モードでオープンして下 さい。 FILE *fpn; if( (fpn=fopen(argv[3],”w”))==NULL)
© Copyright 2024 ExpyDoc