ID非公開さん
2022/7/5 22:15
1回答
C言語のファイルの入出力を勉強しているのですが、 ファイルオープンのif文で、return -1を返していますが、returnは関数に対して返す値ですよね? この場合、何に返しているのですか?
C言語のファイルの入出力を勉強しているのですが、 ファイルオープンのif文で、return -1を返していますが、returnは関数に対して返す値ですよね? この場合、何に返しているのですか? それに、ファイルクローズの部分にはなぜreturnがないのですか? 初歩的な質問ですみませんがよろしくお願いします。 #include<stdio.h> int main(){ FILE *fp; fp=fopen("test.txt","w"); if(fp==NULL){ perror("ファイル・オープンに失敗しました\n"); return -1; }else{ printf("ファイルを正常にオープンしました\n"); } fprintf(fp,"初めてのファイル入出力です。\n"); if(fclose(fp)!=0){ perror("ファイルのクローズに失敗しました\n"); }else{ printf("ファイルを正常にクローズしました\n"); } return 0; }
C言語関連・34閲覧・25
ベストアンサー
main()も関数といえば関数です。「mainの中のreturnで返る値は、プログラムの実行が終わったときにプログラムが返す値です。」だそうです。 ソース元 https://www.geekpage.jp/programming/c/return-main.php 返り値の -1は処理中何らかのエラーあり、0は処理が完全に正常終了、の意味に割り当てたかったのでしょうが、ご指摘のようにファイルクロースのエラーには return -1; がなく(エラーが発生しても返り値が0となる)、なんか一貫性がないように思えます。あまり良いサンプルと言えなさそうです。ファイル入出力のサンプルは探せば沢山あると思いますから勉強には他のも見ておいた方がと思います。
質問者からのお礼コメント
納得できました。 分かりやすかったです。 ありがとうございました。
お礼日時:7/5 23:37