간단한 C++소스인데 결과가 안나와요 좀 봐주세요(파일입출력관

익명 사용자의 이미지

#include
#include

const char *FILENAME="C\boot.int";

int main()
{
char buff[200];
ifstream inputfile(FILENAME);
inputfile.getline(buff,sizeof(buff));
if (inputfile.bad())
cerr << "Unable to open file" << endl;
else
cout << buff << endl;

return 0;
}

위와같이 작성하고 돌리면 에러는 없는데
결과가 없네요!

뭐가 잘못됐는지 알려주세요.
boot.int는 물론 파일내용이 있습니다.

익명 사용자의 이미지

이상이 없는거 같아 해봤더니

잘 되는데요.

화일을 test.cpp 라고 가정하고

g++ -o test test.cpp

안의 화일은 test.ini 라고 하나 만들고 했구요.

익명 사용자의 이미지

윈도우에서면 \ 가 탈출문자로 쓰이기 때문에
\\ 이렇게 두번 써줘야 되지 않을까요?

const char *FILENAME="C\\boot.int"

함해보세요... 움.. 심증만 가구 확증은 안갑니다만.. ^^;;

익명 사용자의 이미지

Windows에서는 자룡님이 설명하신대로

const char *FILENAME = "C\\boot.int";

라고 하시면 되고 LINUX에서는

const char *FILENAME = "./boot.int";
하시면 되겠죠. 물론 Windows에서는 C 드라이브 root에
boot.int가 있어야하고 LINUX에서는 실행파일과 같은 디렉토리에
boot.int가 있어야 겠죠.

음... 그리고 실험을 해보니(LINUX에서...)
첫번째 줄이 빈칸이면 아무것도 출력이 안되더군요. ^^;

익명 사용자의 이미지

도스 C 라이브러리들도,

const char *FILENAME = "C/boot.int";

이렇게 쓰는 걸 지원 합니다. 일부 윈도우즈 API 를 제외하고는
윈API 도 디렉토리 분리 문자로 '/' 를 사용하는 것을 지원하구요.
표준 C 함수라면, 모두 '/' 가 통용됩니다. 개인적으론 이렇게
쓰는 게 더 좋아보이더군요.