2012-06-21 5 views
1
내가 ifstream

C++는 내가 할 경우 상대 경로

의 파일을 여는 데 문제가있다

을 좋아하지 않는 ifstream :

ifstream myfile; 
    myfile.open("C:/Users/build/windows/Debug/map1.xml"); 

가 잘 작동하지만 내가 상대 경로를 할 경우 (실행 파일이 디버그에서 /)

ifstream myfile; 
    myfile.open("map1.xml"); 

파일을 찾을 수 없습니다. 어떤 도움이 필요합니까? 나는 바보 같은 것을 놓치고 있습니까?

+0

어디에서 응용 프로그램을 실행하고 있습니까? – cklab

+0

응용 프로그램의 작업 디렉토리가 map1.xml이있는 작업 디렉토리가 아닌 것 같습니다. –

+0

Visual Studio에서 실행 중이지만 Debug/폴더로 이동하여 실행 파일을 두 번 클릭하면 동일한 결과가 나타납니다. – will

답변

3

대부분의 경우 IDE는 시작할 때 프로그램의 작업 디렉토리를 변경합니다. map1.xmlc:\users\build\windows에 넣으십시오.

+0

한숨이 들었습니다. 디버거에서 중단되었을 때 항상 실행 파일이 업데이트되지 않았을 것입니다. 이제 디버그 디렉토리에서 빌드하고 실행하면됩니다. 그것은 Windows 탐색기에서) 모든 작품 :/내가 디버깅/디버깅하는 동안 디버그/디렉토리에서 Visual Studio를 실행하도록 변경할 수있는 모든 설정? – will

+0

nvm, 찾았습니다. VS 프로젝트 파일을 생성하는 데 사용하고 있기 때문에 수치심을 통해 그 변화를 자동화 할 수는 없습니다./ – will

+0

@will VS에서 해당 디렉토리를 시작하면 프로그램이 실행될 때 작업 디렉토리가되지 않습니까? 그렇다면 배치 파일 (또는 링크?)을 만들고 현재 디렉토리를'C :/Users/build/windows/Debug'로 설정하십시오. – Mark