본문 바로가기
컴퓨터일반

C/C++ file open path seperator

by __observer__ 2012. 11. 23.
반응형

코딩을 하면서 파일을 다루는 건 굉장히 흔한 일입니다.

 

보통 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;

}



반응형

댓글