2009-10-10 5 views
0

어떻게 처리 할 수 ​​있습니까? 파일이 문자, 문자열 또는 긴 이진 파일C의 다른 디렉토리에있는 파일 열기

C:\Documents and Settings\Supernovah\Desktop\Supernovah.bin 

그러나 충돌 과정에 로컬 경로가 포함 된 문자 텍스트를 포함 어디서

pFile = fopen(file, "rb"); 

를 사용하고 싶습니다.

또한 현재 디렉토리를 이식성있는 방법으로 재귀하는 방법에 대해서도 관심이 있습니다. windows.h는 좀 못생긴지만 휴대용 방식으로는 할 수 없다면. 그러면 그렇게 해.

감사합니다 :)

답변

4
char* file="C:\\Documents and Settings\\Supernovah\\Desktop\\Supernovah.bin"; 
FILE* pFile = fopen(file, "rb"); 
+0

thnks 대단히 : D – Supernovah

+0

사용자 입력을 원한다면 어떨까요? (콘솔 응용 프로그램) – Supernovah

+0

사용자 입력은 rintime에서 입력되기 때문에 문제가되지 않습니다. 이 문자열은 문자 그대로 \\는 포함하고 있지 않지만 하나의 \ 문자를 포함하고 있습니다. \\는 단순히 문자열 리터럴 및 문자 상수의 이스케이프 시퀀스에 대한 컴파일러의 특수 처리를 이스케이프 처리하는 방법입니다. – Clifford

1

모두 GCC /는 MinGW 및 VC++ 2008 (그리고 아마도 다른 사람) 수는 Win32에서 유닉스 스타일 경로 구분 기호. 그래서 :

char* file="C:/Documents and Settings/Supernovah/Desktop/Supernovah.bin"; 

도 작동하며 운영 체제간에 이식 가능합니다. 경로의 공백은 문제가 될 수 있으므로 Linux에서 % 20을 (를) 대체해야합니다.