• 締切済み

次の問題の解答をお願いします。

次の問題の解答をお願いします。 次のプログラムには問題があり、コピー先ファイルへ書き込んでいる途中にエラーが発生した場合を想定していない。エラーが発生した場合にメッセージを表示してすぐに終了するようにプログラムを修正せよ。また各行の説明もせよ。 #include<stdio.h> #include<stdlib.h> #include<errno.h> #include<string.h> int main(int argc, char*argv[]) { FILE*source_fp,*dest_fp; int ch; if(argc!=3){ fprintf(stderr,"使い方: %s original.txt copy.txt\n",argv[0]); exit(EXIT_FAILURE); } if((source_fp=fopen(argv[1],"rb"))==NULL){ fprintf(stderr,"%s failed: %s\n", argv[1],strerror(errno)); exit(EXIT_FAILURE); } if((dest_fp_fp=fopen(argv[2],"wb"))==NULL){ fprintf(stderr,"%s failed: %s\n",argv[2],strerror(errno)); exit(EXIT_FAILURE); } while ((ch=getc(source_fp))!=EOF){ putc(ch,dest_fp); } fclose(source_fp); fclose(dest_fp); return 0; エラーメッセージを表示するにはどうしたらいいのかよくわかりません。 よろしくお願いします。

みんなの回答

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.2

まずは、「各行の説明もせよ」の方から解いてください。 「エラーメッセージの出し方」は、このプログラム中に例が載ってます。 「各行の説明」ができれば、それがわかるはずです。 あとは、その例を参考に ・「コピー先ファイルへ書き込んでいる途中」とはプログラム中のどこにあたるか ・「エラーが発生した場合」どの関数(やマクロ)がどうなるのか 調べましょう。

  • asuncion
  • ベストアンサー率33% (2127/6290)
回答No.1

>エラーメッセージを表示するにはどうしたらいいのかよくわかりません。 ということは、「各行の説明もせよ。」という設問への対応はできているのですね?

fjanfuvj
質問者

補足

いえ、できていません。 本などで調べてもつかわれている関数もよくわからず 困っています。

関連するQ&A