- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ファイルコピープログラムについて)
ファイルコピープログラムの問題解決方法
このQ&Aのポイント
- C言語を始めたばかりの人が作成したファイルコピープログラムで、コピー先のファイルサイズが2バイト大きくなってしまう問題が発生しています。
- ソースコードを解析すると、バッファサイズを指定していなかったため、1つのバッファに1バイトではなく4バイトずつ書き込まれてしまっています。
- 問題を解決するためには、バッファサイズを1バイトに変更し、1バイトずつ書き込むように修正する必要があります。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
4バイトずつ読んで4バイトずつ書いています。 ファイルサイズが4の倍数バイトなら正常に コピー出来る、という不安定なプログラムに なっています。 1バイトずつなら確実ですが、あまりに効率が 悪い。4Kバイトずつくらい読んで、最後は 何バイト読めたかチェックし、読めたバイト数 だけを書き込めばいいでしょう。
その他の回答 (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 型なんですか?
お礼
ありがとうございました。 これのヒントを基にしてプログラム書き直そうと思います