我从一个将文件复制到另一个文件的网站上获得了以下代码,它编译并运行,但输出文件的内容不会改变。 有人可以指出问题出在哪里? 我使用开发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;
}
答案 0 :(得分: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函数。