캐리지 리턴 문자('\r')

캐리지 리턴 문자에 대해 공부합니다.

캐리지 리턴 문자('\r')컴퓨터 시스템에서 줄바꿈을 나타내는 방식 중 하나입니다. 주로 운영 체제와 텍스트 파일 포맷에 따라 다르게 사용됩니다. 이 문자에 대해 자세히 이해하기 위해, 캐리지 리턴 문자의 기원과 사용 이유를 살펴보겠습니다.

1. 캐리지 리턴의 기원

캐리지 리턴(Carriage Return, CR)은 타자기에서 유래된 용어입니다. 타자기는 한 줄을 모두 타이핑한 후, 종이를 오른쪽에서 왼쪽으로 이동시키기 위해 "캐리지를 리턴"하는 동작을 수행했습니다. 이 동작이 ASCII 코드에서 /r로 정의되었습니다.

2. 운영 체제별 줄바꿈 방식

운영 체제마다 줄바꿈 문자를 처리하는 방식이 다릅니다:

  • Windows: 줄바꿈을 \r (캐리지 리턴 + 라인 피드)로 표시합니다.

  • Unix/Linux 및 MacOS (현대): 줄바꿈을 (라인 피드)로 표시합니다.

  • MacOS (구버전): 줄바꿈을 \r(캐리지 리턴)로 표시했습니다.

이러한 차이 때문에, 다른 운영 체제에서 생성된 텍스트 파일을 읽거나 쓸 때 줄바꿈 문자를 처리하는 방법이 달라질 수 있습니다.

3. 캐리지 리턴의 발생 이유

캐리지 리턴 문자는 주로 다음과 같은 경우에 발생합니다:

  • Windows 시스템에서 엔터 키를 누르면 입력 스트림에 \r\n이 추가됩니다.

  • 네트워크 프로토콜(예: HTTP)에서 줄바꿈을 표준화하기 위해 \r\n을 사용합니다.

  • 레거시 파일 포맷에서 줄바꿈을 나타내기 위해 사용되기도 합니다.

4. 코드에서 캐리지 리턴 처리

캐리지 리턴 문자가 있는 입력을 처리할 때, 불필요한 문자로 간주되어 무시됩니다. 예를 들어, Windows 시스템에서 엔터 키를 누르면 \r\n이 연속으로 발생합니다. 이는 다음과 같은 방식으로 처리됩니다:

while (true) {
    int i = System.in.read();
    if (i == '\r') continue;  // 캐리지 리턴 문자는 무시
    if (i == ' ' || i == '\n') {
        break;
    }
    // 나머지 로직...
}

이 부분은 \r문자를 무시하고, 줄바꿈이나 공백이 나올 때까지 문자를 읽습니다.

Last updated