0

我从一个将文件复制到另一个文件的网站获得了以下代码,它编译并运行,但输出文件的内容没有改变。有人能指出问题出在哪里吗?我正在使用 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++ 问题了。Windows 保护特殊文件夹,例如C: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 回答