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