0

ファイルを別のファイルにコピーする Web サイトから次のコードを取得し、コンパイルして実行しますが、出力ファイルの内容は変わりません。誰かがどこに問題があるか指摘できますか? 私はdev c ++ IDEを使用しています(編集:おそらくmingwを使用)。

 #include <fstream>
#include <string>
#include <stdio.h>
#include <iostream>
#include <iomanip>
#include <windows.h>

using namespace std;

int main(){

    CopyFile("C:\\Users\\KEVIN\\Documents\\c++\\t.txt","C:\\Users\\KEVIN\\Documents\\c++\\output.txt",false);
system("pause");
return 0;   
}
4

1 に答える 1

1

編集

これはもはや C++ の質問ではありません。C:Windowsはなどの特別なフォルダーを保護しますC:\windows。管理者としてプログラムを実行するか、一時フォルダーを作成しC:てアクセスする必要があります。

以下のコードには未定義の動作があり、fileSize/2 メモリ ブロックを作成しますが、fileSize で読み書きしようとしましたが、境界外です。

short * buffer = new short[fileSize/2];
initialFile.read((char*)buffer, fileSize);

修正するには:

short * buffer = new short[fileSize];

私は JerryCoffin のアイデアを取り入れたいと思います。代わりに Windows の CopyFile 関数を使用してください。

于 2012-12-20T03:00:38.600 に答える