2012-12-20 3 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 없습니다. C:, C:\windows 등의 특수 폴더는 Windows에서 보호됩니다. 관리자 권한으로 프로그램을 실행하거나 C:에 임시 폴더를 만들어 액세스해야합니다.

아래 코드는 정의되지 않은 동작을하지만 fileSize/2 메모리 블록을 만들었지 만 fileSize를 사용하여 읽기/쓰기를 시도했지만 경계가 없습니다.

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

를 해결하려면 :

short * buffer = new short[fileSize]; 
내가 JerryCoffin의 생각을하고 싶습니다

, 단지 대신 윈도우 CopyFile 수 기능을 사용합니다.

+0

내가 파일을 열 수 없다는 것을 알았습니다. – keivn

+0

파일 크기가 짝수 일 경우 올바른 크기이므로 반바지 배열입니다. 그러나 이상한 경우 1 바이트가 짧습니다. –

+0

@keivn이 문제는 다른 것이지만이 코드 조각입니다. 또한 충돌이 발생했습니다 – billz

관련 문제