ファイルの出力
コマンドラインで指定したファイルの内容を一行ずつ表示するプログラムです。一行表示するごとに次の行も表示するか尋ねます。
#include<stdio.h>
#include<stdlib.h>
#include<ctype.h>
int main(int argc, char *argv[])
{
FILE *fp;
char str[80];
char ch;
if (argc != 2){
printf("コマンドライン引数が違います\n");
exit(1);
}
if ((fp = fopen(argv[1],"r")) == NULL){
printf("ファイルが開けません");
exit(1);
}
while(!feof(fp)){
fgets(str, 79, fp);
if (!feof(fp)) printf("%s",str);
printf("追加しますか?(y/n)");
gets(str);
if ( toupper(*str) == 'N') break;
printf("\n");
}
if (fclose(fp) == EOF){
printf("ファイルを閉じれません\n");
exit(1);
}
return 0;
}
while文の
gets(str);
if ( toupper(*str) == 'N') break;
この部分を
ch = getchar();
if ( toupper(ch) == 'N') break;
でやると上手く実行できないのですが、なぜでずか?
お礼
そういうことだったんですか。 自分で勝手に入力した文字が即座に大文字になるものと思い込んでいました。ありがとうございます。