코딩을 하면서 파일을 다루는 건 굉장히 흔한 일입니다.
보통 C/C++ 코딩시에는 fopen() 등을 이용하여 파일을 읽고 쓰고 하는데
운영체제에 따라 path seperator 가 다르죠~
윈도우에서는 흔히들 알고 있듯이 path seperator 가 \ (역슬래시)이고, 리눅스 계열에서는 / (슬래시)죠 ~
리눅스에서야 별 문제가 없지만 윈도우에서는 C:\test.txt 와 같은 경로의 파일을 C/C++ 코드에서 열 때~
아래 코드와 같이 하면 에러가 발생하게 됩니다.
ofstream outfile;
outfile.open ("C:\test.txt");
이는 C/C++ 에서 \(역슬래시) 가 아래와 같은 escape sequence 를 나타내기 위한 기호로 사용되기 때문이죠~
\a Bell (alert)
\b Backspace
\f Formfeed
\n New line
\r Carriage return
\t Horizontal tab
\v Vertical tab
\' Single quotation mark
\" Double quotation mark
\\ Backslash
\? Literal question mark
\ooo ASCII character in octal notation
\xhhh ASCII character in hexadecimal notation
따라서 위에서 예를 든 C:\ test.txt 같은 경우 \ (역슬래시)를 /(슬래시) 로 바꿔주거나 또는 \\ 로 바꿔줘야 정상적으로 동작하게 됩니다.
사용 예는 아래와 같습니다.
#include <iostream>
#include <fstream>
using namespace std;
int main () {
ofstream outfile;
outfile.open ("C:/test.txt"); // OR outfile.open ("C:\\test.txt");
outfile << "test\n" ;
outfile.close();
return 0;
}
'컴퓨터일반' 카테고리의 다른 글
Windows 폴더 접근 명령어들 (0) | 2013.01.07 |
---|---|
Ms Word 캡션 사용 방법 (2) | 2013.01.06 |
Wolfram-Alpha 재밌네요~ (0) | 2013.01.05 |
이미지로도 검색이 되는~ 구글 이미지 검색 (0) | 2012.12.03 |
Windows 심볼릭링크파일 vim으로 편집 후 저장할 때…. 링크가 왜 깨질까? (0) | 2012.11.16 |
Ubuntu 에서 cmake 사용시 CMAKE_CXX_COMPILER-NOTFOUND 에러 (0) | 2012.11.04 |
VirtualBox 홈페이지 주소 바뀐건가…. (0) | 2012.11.04 |
C/C++ 매개변수를 갖는 매크로, #, ## 연산자 (288) | 2012.10.29 |
댓글