컴퓨터 엑셀 워드 포토샵 구글어스 WINDOWS JAVASCRIPT JAVA C++

 
Tuesday, April 17, 2007

C언어] printf 함수 CR-LF 줄바꿈, 개행문자(Newline), 엔터(Enter)키 출력 방법


C에서는 "\n" 즉, 백슬래시+소문자n으로 줄바꿈을 합니다. 줄바꿈이라는 것은, 말 그대로, 문장의 끝에서 다음줄로 엔터 키를 치는 것입니다. "\n" 이라는 문자를 사용하면 자동으로 엔터키가 쳐지게 됩니다.

문자열의 일부로서 "\n" 을 사용하면, 운영체제의 종류에 따라 자동으로 줄바꿈 문자 즉 개행문자가 출력됩니다.


* 유닉스(Unix)/리눅스(Linux)에는, LF (헥사로는 0x0A에 해당) 문자로 줄바꿈을 하고

* 도스(DOS)/윈도우(Windows)에서는, CR-LF (헥사로는 0x0D 0x0A에 해당) 라는 2문자로 줄바꿈을 하고

* 맥(Mac)에서는, CR (헥사로는 0x0D 에 해당) 로 줄바꿈합니다. "\r" 로 표현합니다.

실제로 어떤 개행문자가 출력될지는 컴파일러가 알아서 합니다. 따라서 "\n"만 사용하면 자동으로 줄바꿈이 됩니다.



다음 예제는, 윈도우에서 각종 개행문자들을 출력하는 소스입니다. 윈도우의 기본 개행문자인 0D 0A 로도 출력하고, 다른 운영체제의 개행문자로도 강제로 출력해 봅니다. 그러나 유닉스 개행문자는 잘 출력이 되지 않는군요.

소스 파일명: example.cpp
#include <stdio.h>

int main(void) {

  printf("운영체제 종류에 따라 자동 줄바꿈(AUTO)\n");
  // 비주얼C에서는 당연히, 줄바꿈이 0D 0A 로 출력

  printf("강제로 유닉스 줄바꿈 (LF) 으로%c", 0x0A);
  // 원래는 0A 로 나와야 하지만
  // 비주얼C에서는 역시 줄바꿈이 0D 0A 로 출력

  printf("강제로 맥용 줄바꿈 (CR) 으로\r");
  // 이 경우, 비주얼C에서는 줄바꿈이 0D 로 출력

  return 0;
}



개행문자는 눈에 보이지 않기 때문에, 다음과 같이 파일로 저장한 후, "헥사 뷰어"나, "헥사 에디터"로 보아야 알 수 있습니다. (다만 울트라에디트의 헥사 모드로는 제대로 보이지 않습니다.)

D:\Z>cl example.cpp && example > out.txt
example.cpp

D:\Z>hexdump.pl out.txt
00000000:  BF EE BF B5 C3 BC C1 A6  20 C1 BE B7 F9 BF A1 20  ........ ......
00000010:  B5 FB B6 F3 20 C0 DA B5  BF 20 C1 D9 B9 D9 B2 DE  .... .... ......
00000020:  28 41 55 54 4F 29 0D 0A  B0 AD C1 A6 B7 CE 20 C0  (AUTO)........ .
00000030:  AF B4 D0 BD BA 20 C1 D9  B9 D9 B2 DE 20 28 4C 46  ..... ...... (LF
00000040:  29 20 C0 B8 B7 CE 0D 0A  B0 AD C1 A6 B7 CE 20 B8  ) ............ .
00000050:  C6 BF EB 20 C1 D9 B9 D9  B2 DE 20 28 43 52 29 20  ... ...... (CR)
00000060:  C0 B8 B7 CE 0D                                    .....

D:\Z>



▶▶ C언어/Perl] printf() 함수의 포맷 스트링 %s, %d - Format Specifier

참고: ▶▶ C언어] 헥사 뷰어 소스, 헥사 덤프 만들기; Hex View, File Dump Source Code




줄바꿈 | 개행 문자




tag: cpp
C언어 | C/C++ (Visual C++)

2 Comments:
At June 11, 2009 at 10:57 AM, Blogger z980 said...

맥에서 \r을 사용하는건 OS 9.x 까지였고
OS X부터는 \n을 사용한다고 합니다.

출처: http://en.wikipedia.org/wiki/Newline

 
At June 11, 2009 at 4:12 PM, Blogger mwultong said...

좋은 정보 감사합니다^_^

 

Post a Comment

<< Home RSS 2.0 feed

구글 Google 에서 제공하는 무료 블로그 서비스인 블로거 Blogger 의 인터넷 주소는 www.blogger.com 입니다. Blogger 에 블로그를 만들면, blogspot.com 이라는 주소에 블로그가 생성됩니다.
블로그를 직접 방문하지 않고도 최신 게시물을 구독하려면 RSS 2.0 feed 주소를 리더기에 등록하시면 됩니다.
Previous Posts
Monthly Archives
Top