2012-12-20 57 views
1

我得到了下面的代码从网站文件到另一个,它编译和运行的副本,但输出文件的内容并没有改变。 有人可以指出问题在哪里? 即时通讯使用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; 
} 
+0

我会'#include ',删除你的'CopyFile'的定义,并调用['CopyFile'](http://msdn.microsoft.com/en-us/library/windows/desktop/ aa363851.aspx)内置于Windows中。 –

+0

我这样做,但output.txt的内容不会改变? – keivn

+0

固定的问题已经 – keivn

回答

1

编辑

这不是C++的问题了。 的Windows保护的特殊文件夹,像C:C:\windows等你要么需要运行程序作为管理员或只是C:创建一个临时文件夹来访问它。

下面的代码是未定义行为,它创建档案大小/ 2内存块,但试图读取档案大小/写,这是出boundry的。

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

要解决:

short * buffer = new short[fileSize]; 

我想借此JerryCoffin的想法,只是用windows的CopyFile函数。

+0

我发现我无法打开寿 – keivn

+0

这是短裤的阵列,它是正确的大小,如果文件大小不连文件,但一个字节的短,如果奇 –

+0

@keivn那是另外的问题,而是这一段代码也崩溃 – billz

相关问题