• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ファイルコピープログラムについて)

ファイルコピープログラムの問題解決方法

このQ&Aのポイント
  • C言語を始めたばかりの人が作成したファイルコピープログラムで、コピー先のファイルサイズが2バイト大きくなってしまう問題が発生しています。
  • ソースコードを解析すると、バッファサイズを指定していなかったため、1つのバッファに1バイトではなく4バイトずつ書き込まれてしまっています。
  • 問題を解決するためには、バッファサイズを1バイトに変更し、1バイトずつ書き込むように修正する必要があります。

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

  • ベストアンサー
  • Tasuke22
  • ベストアンサー率33% (1799/5383)
回答No.1

4バイトずつ読んで4バイトずつ書いています。 ファイルサイズが4の倍数バイトなら正常に コピー出来る、という不安定なプログラムに なっています。 1バイトずつなら確実ですが、あまりに効率が 悪い。4Kバイトずつくらい読んで、最後は 何バイト読めたかチェックし、読めたバイト数 だけを書き込めばいいでしょう。

nesnes
質問者

お礼

ありがとうございました。 これのヒントを基にしてプログラム書き直そうと思います

その他の回答 (2)

  • mk48a
  • ベストアンサー率56% (1133/2007)
回答No.3

ファイルコピーを実装してみたいというならそれも良いのですが、それが主目的でなければ、Win32APIのCopyFile()を使用するのが簡単で良いかと思います。 http://www.activebasic.com/help_center/Pages/API/SystemService/File/CopyFile.htm

  • koko_u_
  • ベストアンサー率18% (459/2509)
回答No.2

そもそも、どうしてバッファが int 型なんですか?