• ベストアンサー

C言語 fopenのエラー処理

#define IN "*.txt" FILE *rp; if (!(rp = fopen(IN, "r"))){ printf("Can't open file.\n"); return (-1); } というプログラムを書いていたのを見たのですが、これでどうやってエラー判定してるのか分かりません。 「!」はどういう役割をになっているのですか??

質問者が選んだベストアンサー

  • ベストアンサー
  • maiko0318
  • ベストアンサー率21% (1483/6969)
回答No.1

まず、rp = fopen(IN, "r")にてファイルを読み込みモードでオープンしています。 それが成功するとTRUE、失敗するとFALSEが返ってきます。 !は否定形で、!(rp = fopen(IN, "r"))にてFALSEだった時という意味になります。

suuu0810
質問者

お礼

なるほど! 納得できました! ありがとうございます。