관리 메뉴

드럼치는 프로그래머

[C/C++] 개행문자 "\n\r" ( 텍스트모드와 바이너리모드 ) 본문

★─Programing/☆─C | C++

[C/C++] 개행문자 "\n\r" ( 텍스트모드와 바이너리모드 )

드럼치는한동이 2009. 1. 30. 08:59
'\r' 은 아스키값 0x0d (텍스트문장에서 맨앞으로 이동하는 특수문자)

'\n'은 아스키값 0x0a (텍스트문장에서 다음 줄로 이동하는 특수문자)

로 사용합니다.

 

도스, 유닉스, 윈도우 등 OS의 파일 시스템에 따라 텍스트 개행문자가 특성이 조금 다릅니다.

윈도우에서는  보여주는것은 \r 이 있든 없든 보여주는것 같던데...

 

예전에 그래픽모드가 거의 없던시절에 (MSDOS시절 거의 텍스트문서로 이루어질때)

 

printf ("abcdefg\rhi"); 

화면표시결과는 abcdefg 표시후 맨앞줄로 이동후 hi를 표시하면

hicdefg

로 나타나고,

 

printf("abcdefg\nhi");

화면표시결과는 abcdefg 표시후 다음줄로 이동후 hi를 표시하면

abcdefg

             hi

위에서 g 바로밑 다음부터 hi임 (편집기에서 바로보이는지 조금 안맞네요)

 

printf("abcdefg\n\rhi");

는 abcdefg 표시후 커서를 맨앞으로 이동후 줄을 바꾸고 hi를 표시합니다.

abcdefg

hi

로 나타납니다.

 

요즘은 윈도에서 \n 만 있어도 \n\r 로 나타나더군요.

 편집기에서 프로그램을 큰구분없이 쓰기 때문일수도 있는데 텍스트에서는 별 문제가 없겠지요.

 

그리고 EOF의 경우 도스파일들은 0x1A (ctrl-z) 에 해당하는 문자가 있으면 텍스트 파일의 끝으로 인식합니다.

 

텍스트모드에서는 우리가 문자로 인식하는 것들을 바로 보여주는 모드라고 할 수 있고,

바이너리 모드는 보이지않는 내용까지 포함합니다. 텍스트 모드보다는 더 복잡하고 다양하게 사용할 수 있습니다.  프로그램파일이나 jpg 파일과 같은 그림파일, 동영상파일등은 바이너리모드로 그내용들을 읽고 분석할 수가 있습니다.


Comments