ID非公開

2021/9/16 4:02

33回答

C言語入門。ファイルポインタの文なんですけどwhileのところははどうやって更新されてLooopを抜けてるんでしょうか? #include<stdio.h>

補足

説明の仕方が悪かったです。 ループ自体はこのサンプルで抜けられるのですが、どういう原理でループを抜けてるのか教えてほしかったです

C言語関連30閲覧

ベストアンサー

0

ThanksImg質問者からのお礼コメント

なるほど。ストリームがそうなってるのですか

お礼日時:9/16 8:25

その他の回答(2件)

0

#include<stdio.h> int main(void) { FILE* fp; char ch; fp=fopen("memo.txt","r"); if(fp==NULL){ printf("aaa\n"); exit(1); } while (fgetc(fp)!=EOF){ printf("aabba\n"); putchar(ch); } fclose(fp); return 0; } これだと、動作目的は果たせないが、、、、 ループは抜ける、、、 fgetc(fp)のリターン値がEOFになると条件式が偽になるのでループを抜ける、、、

0

”式を評価する” ということは”実行”するってことです。 >(ch = fgetc(fp)) != EOF は fgetsした結果をEOFと比較する ってことになります