2012-12-20 100 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

相關問題