/* File 入力(2) [再入力] 1-11-2.c */ /* ここではFile名の入力を間違った時に、入力を遣り直す例を挙げる */ #include <stdio.h> #include <stdlib.h> // exit命令を使わないので不要だが、一応書いて置く。 #define MAX 127 main() { char fname[50]; char str[MAX+1]; FILE *fin; // fileを扱う宣言−入力用 /* 以下の do while loopで、入力ミスの時はFile名の入力を繰り返す(while loop との違いに留意。do whileはdo以下の文を必ず一度は実行する)。 */ do { printf("* Text File 表示 *\nFile名を入力:"); gets(fname); fin=fopen(fname,"r"); // fileを開ける。 if (fin==NULL) printf("File がありません!\n\n"); } while (fin==NULL); // fileが無ければdoの頭に戻って繰り返す。 /* 以下のwhile loopでText Fileを画面に表示する。前回とは少し書き方を変えた。 whileの( )中に直接fgets()文を書くと少し短く出来る。*/ while (fgets(str,MAX,fin) != NULL) fputs (str,stdout); fclose(fin); printf("\nEnd\n"); return 0; }