지금 이 현재
GitHub
  • INTRO
  • CATEGORY
    • Java
      • JVM(Java Virtual Machine)
      • System.arraycopy()
      • toArray 함수 호출 시 빈 배열을 전달해야 하는 이유
      • POI Excel 인쇄 영역, 페이지 나누기 설정
      • Overloading & Overriding
      • Functional Interface
      • computeIfAbsent 메소드를 알아보자
    • Computer Science
      • 캐리지 리턴 문자('\r')
    • Kotlin
      • Java 와 다른 Kotlin
    • C++
      • ios_base::sync_with_stdio 의 역할과 사용 이유
    • Javascript
      • 자바스크립트 기본 - 문법
      • 자바스크립트 기본 - 함수
    • MySQL
      • EXPLAIN
    • Android
      • Android 기초
    • Error
      • macOS 업데이트 후 mysql 실행 에러
    • Algorithm
      • 모듈러 산술 (Modular Arithmetic)
  • BOOK
    • 헤드퍼스트 디자인 패턴
      • 전략 패턴(Strategy Pattern)
      • 옵저버 패턴(Observer Pattern)
      • 커맨드 패턴(Command Pattern)
      • 데코레이터 패턴(Decorator Pattern)
    • 자바의 정석
      • Chapter 14. Lambda & Stream
    • 함께 자라기
      • 자라기
  • STUDY
    • 99클럽
      • [99클럽 코테 스터디 1일차 TIL] 프로그래머스 - n^2 배열 자르기
      • [99클럽 코테 스터디 2일차 TIL] 프로그래머스 - x만큼 간격이 있는 n개의 숫자
      • [99클럽 코테 스터디 3일차 TIL] 프로그래머스 - 문자열 내 마음대로 정렬하기
      • [99클럽 코테 스터디 4일차 TIL] 프로그래머스 - JadenCase 문자열 만들기
      • [99클럽 코테 스터디 5일차 TIL] 프로그래머스 - 전화번호 목록
      • [99클럽 코테 스터디 6일차 TIL] 프로그래머스 - 의상
      • [99클럽 코테 스터디 7일차 TIL] 프로그래머스 - 하노이의 탑
      • [99클럽 코테 스터디 8일차 TIL] 프로그래머스 - 기능개발
      • [99클럽 코테 스터디 9일차 TIL] 프로그래머스 - 더 맵게
      • [99클럽 코테 스터디 10일차 TIL] 프로그래머스 - 이중우선순위큐
      • [99클럽 코테 스터디 11일차 TIL] 프로그래머스 - 카드 뭉치
      • [99클럽 코테 스터디 12일차 TIL] 프로그래머스 - H-Index
      • [99클럽 코테 스터디 13일차 TIL] 백준 - 숫자 카드
      • [99클럽 코테 스터디 14일차 TIL] 백준 - 숫자 카드 2
      • [99클럽 코테 스터디 15일차 TIL] LeetCode - Prefix and Suffix Search
      • [99클럽 코테 스터디 16일차 TIL] 프로그래머스 - 모음사전
      • [99클럽 코테 스터디 17일차 TIL] 백준 - 촌수계산
      • [99클럽 코테 스터디 18일차 TIL] 백준 - 단지번호붙이기
      • [99클럽 코테 스터디 19일차 TIL] 프로그래머스 - 구명보트
      • [99클럽 코테 스터디 20일차 TIL] 프로그래머스 - 큰 수 만들기
      • [99클럽 코테 스터디 21일차 TIL] 프로그래머스 - 피보나치 수
      • [99클럽 코테 스터디 22일차 TIL] 프로그래머스 - 멀리 뛰기
      • [99클럽 코테 스터디 23일차 TIL] 프로그래머스 - 마법의 엘리베이터
      • [99클럽 코테 스터디 24일차 TIL] 프로그래머스 - 대충 만든 자판
      • [99클럽 코테 스터디 29일차 TIL] LeetCode - Longest Increasing Subsequence
      • [99클럽 코테 스터디 31일차 TIL] 백준 - 점프 점프
      • [99클럽 코테 스터디 32일차 TIL] 프로그래머스 - 무인도 여행
      • [99클럽 코테 스터디 33일차 TIL] 프로그래머스 - 리코쳇 로봇
      • [99클럽 코테 스터디 34일차 TIL] 프로그래머스 - 타겟 넘버
      • [99클럽 코테 스터디 35일차 TIL] 프로그래머스 - 게임 맵 최단거리
      • [99클럽 코테 스터디 36일차 TIL] 프로그래머스 - 전력망을 둘로 나누기
      • [99클럽 코테 스터디 37일차 TIL] 백준 - 부등호
Powered by GitBook
On this page
  • 1. 캐리지 리턴의 기원
  • 2. 운영 체제별 줄바꿈 방식
  • 3. 캐리지 리턴의 발생 이유
  • 4. 코드에서 캐리지 리턴 처리
  1. CATEGORY
  2. Computer Science

캐리지 리턴 문자('\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문자를 무시하고, 줄바꿈이나 공백이 나올 때까지 문자를 읽습니다.

PreviousComputer ScienceNextKotlin

Last updated 11 months ago