60日間全力プログラミング

プログラミング初心者が二ヶ月間でどこまでいけるかを記録したプログラミング学習ブログ

R63 0,30

考察
一様動くけど、最後にAbort trap 6 がでちゃう=どこかでプログラムが中断している。
EOFはファイルの終わり(End Of File)を表す定数
 
問題
(1)処理概要
   社員マスタファイルを読み込み一覧を表示する。
(2)表示例
 
<<< 社員マスタ一覧 >>>
 
番号 氏 名    基本給  
___1 1010 山本幸一 00128900  
___2 1012 長島重行 00158900  
___3 1031 上田冨美子 00216400  
___4 1041 井上治明 00239800  
 
確認したら何かキーを押してください。
 
  ↓  ↓              
4 11 桁      ___1の_は半角スペースを表す。
 
(3)処理内容
 
  ①見出しとタイトルを表示する。
  ②ファイル"shain_m.txt"を入力モード"r"でオープンする。
  ③データがなくなるまでカウンタとデータ内容を表示する。
   ・このプログラムではデータをfscanfで入力し、printfで出力する。
   ・左端に件数(カウンタ)を表示する。
  (コーディング例)
no = 1; → 件数初期値
 while(fscanf(fp,"%d %s %d",&bango,simei,&kihonkyu)!=EOF){ → 読み込み
printf(" %4d ",no); → 件数表示
printf("%04d %-15s %8d",bango,simei,kihonkyu); → データ表示
no++; → 件数+1
  ④「確認したら何かキーを押してください。」を赤色で表示し、何かキーを入力したら
    プログラムを終了する。
 
#include
#include

#define EOF (-
1)

int main()
{

    FILE *fp;
   
int no, bango, kihonkyu;
   
char simei[15];
   
    printf(
"\n         <<< 社員マスタ一覧 >>>\n\n");
    printf(
"    番号 氏名  基本給\n");
    fp = fopen(
"shain_m.txt", "r");
    no =
1;
   
   
while (fscanf(fp, "%d %s %d", &bango, simei, &kihonkyu) !=EOF)
    {
        printf(
" %4d ", no);
        printf(
"%04d %-15s %8d\n", bango, simei, kihonkyu);
        no++;
    }
    fclose(fp);
   
    printf(
"確認したら何かキーを押してください。\n");
    getchar();

   
return 0;
}