캐리지 리턴, 줄 바꿈 및 용지 공급이란 무엇입니까?


500

다음 제어 문자의 의미는 무엇입니까?

  1. 캐리지 리턴

  2. 줄 바꿈

  3. 용지 공급


14
"캐리지 리턴"이란 무엇입니까? 랩탑에 "캐리지"가 "반환"되는 것을 볼 수 없습니다. : s
장 Hominal

12
@JeanHominal 캐리지는 기본적으로 커서 (또는 고대 타자기의 포인터)를 의미하며 return은 해당 줄의 시작 부분으로 돌아갑니다.
SOFe

"터미널" "윈도우"에서 와이어 (또는 해당 문제에 대한 유리 창)가 종료되지 않았거나 / dev / tty1에 연결된 "텔레 타입"도 없습니다. 그들은 모두 은유가되었습니다.
Piskvor 건물 왼쪽

답변:


621

캐리지 리턴 은 아래쪽으로 진행하지 않고 현재 줄의 시작 부분으로 돌아가는 것을 의미합니다. 이름은 화일에 모니터가 드물었으므로 이름은 프린터 운송에서 비롯됩니다. 이것은 일반적으로 \r, 약어 CR 로 이스케이프되며 ASCII 값 13또는을 갖습니다 0x0D.

줄 바꿈 은 다음 줄로 내려가는 것을 의미합니다. 그러나 용도와 이름이 변경되었습니다. "줄 바꿈"으로 사용되며 행 을 종료 합니다 (일반적으로 구분 행 과 혼동 됨 ). 이 이름은 일반적으로 LF 또는 NL로 \n생략 되며 ASCII 값 또는을 갖습니다 . CRLF (CRNL은 아님)가 쌍에 사용됩니다.100x0A\r\n .

용지 공급 은 다음 "페이지"로 내려가는 것을 의미합니다. 일반적으로 페이지 구분 기호로 사용되었지만 이제는 섹션 구분 기호로도 사용됩니다. 논리적으로 독립적 인 기능 또는 기능 그룹을 나누기 위해 소스 코드에서 일반적으로 사용되지 않습니다. 텍스트 편집기는 "페이지 나누기 삽입"시이 문자를 사용할 수 있습니다. 이것은 일반적으로 FF\f약칭 되며 ASCII 값 또는을 갖습니다 .120x0C


제어 문자로서 다양한 방식으로 해석 될 수 있습니다.

가장 일반적인 차이점 (그리고 아마도 걱정할만한 유일한 것)은 Windows의 CRLF, Unix와 같은 NL 및 구형 Mac의 CR로 끝납니다 (OS X의 상황은 Unix와 비슷하게 바뀌 었습니다). LF에서 NL 로의 의미 이동은 정확히 동일한 문자에 대해 Windows와 Unix의 차이점을 나타냅니다. (Windows는 물론 Unix보다 최신 버전이므로 이러한 의미 적 변화를 채택하지 않았습니다. CR을 사용하는 Mac의 역사를 모르겠습니다.) 많은 텍스트 편집기는이 세 가지 형식의 파일을 모두 읽고 변환 할 수 있습니다. 모든 유틸리티가 가능한 것은 아닙니다.

양식 피드는 좀 더 흥미 롭습니다 (직접 사용하는 경우는 드물지만). 페이지 구분 기호의 일반적인 정의를 사용하면 줄 사이 (예 : 줄 바꿈 순서 NL, CRLF 또는 CR 이후) 또는 시작 또는 시작시에만 올 수 있습니다. 파일의 끝.


10
나는 것을 확인할 수 있습니다 OS X는 (OS X이 있기 때문에 단지 유닉스처럼, 줄 끝으로 NL을 사용하는 것입니다 유닉스). CR은 Mac OS 9 이하 에서 사용되었습니다 .
Rory O'Kane

1
FF 문자는 오늘날 "CTRL-G"벨 문자와 함께 이상하게 보일 수 있지만 비디오 디스플레이가 훨씬 덜 일반적이고 하드 카피 터미널이 데이터 디스플레이로 사용될 때 더 관련성이있었습니다.
Rick Sarvas

그 피드 컨트롤 \x0c아닌가요?
Tjorriemorrie

2
"CR을 사용하는 Mac의 역사를 모르겠습니다." 아마도 CR을 사용하는 Apple II에서 나왔을 것입니다. CR은 Commodore 및 Tandy와 같은 다른 8 비트 시스템에서도 일반적입니다. ASCII는 이러한 시스템에서 보편적이지 않았습니다. Commodore는 LF가 0x8d (!) 인 PETSCII를 사용했습니다. 아타리는 전혀 LF 캐릭터가 없었습니다. 어떤 이유로 든 CR = 0x0d는 다소 표준입니다.
Ssswift

125

\r 캐리지 리턴이며 커서를 다음과 같이 다시 움직입니다.

printf("stackoverflow\rnine")
ninekoverflow

는 "stackoverflow"의 시작 부분으로 커서를 이동했으며 "9"의 길이가 4 자이므로 시작 4 개의 문자를 덮어 씁니다.

\n 줄 바꿈을 바꾸고 커서를 줄 바꿈의 시작 부분으로 가져 오는 줄 바꿈 문자입니다.

printf("stackoverflow\nnine")
stackoverflow
nine

\f 양식 피드이며 사용이 더 이상 사용되지 않지만 다음과 같이 들여 쓰기를 제공하는 데 사용됩니다.

printf("stackoverflow\fnine")
stackoverflow
             nine

내가 이렇게 쓰면

printf("stackoverflow\fnine\fgreat")
stackoverflow
             nine
                 great

3
그러나이 예제는 고급 언어에서는 작동하지 않습니다!
Sina Karvandi

@ ᔕI ᑎᗩ Kᗩᖇ ᐯᗩᑎᗪ I 그렇게합니다 : 적어도 printfcoreutils의 유틸리티를 사용하여 Linux 쉘에서 동일한 작업을 수행 할 수 있습니다 . 또는 echo -enbash 내장을 사용 하는 경우도 있습니다.
Ruslan

파일에서 모든 줄을 한 줄로 전달하는 방법은 무엇입니까?
Paras Singh

8
들여 쓰기에는 폼 피드가 사용되지 않습니다. 그 중 몇 개를 프린터로 보내면 용지가 튀어 나옵니다. 당신이 묘사 한 \f것은 실제로 \v수직 탭으로 콘솔에서 모두 동일하게 보입니다.
cprn

printf("123\f456\f789");콘솔에 /> <bold> 123456789 </ bold>를 표시합니다.
Mayur

31

Wikipedia를 살펴보십시오 .

ASCII 또는 호환 문자 세트를 기반으로하는 시스템은 LF (줄 바꿈, '\ n', 0x0A, 10 진수 10) 또는 CR (캐리지 리턴, '\ r', 0x0D, 10 진수 13) 또는 개별적으로 CR을 사용합니다. LF (CR + LF, 0x0D 0x0A). 이러한 문자는 프린터 명령을 기반으로합니다. 줄 바꿈은 한 줄의 용지가 프린터에서 공급되어야하고 캐리지 리턴은 프린터 캐리지가 현재 줄의 시작 부분으로 돌아 가야한다는 것을 나타냅니다.


25

\f페이지 나누기에 사용됩니다. 콘솔에서 아무 효과도 볼 수 없습니다. 그러나 파일 에서이 문자 상수를 사용하면 차이점을 볼 수 있습니다.

다른 예는 출력을 파일로 리디렉션 할 수 있으면 파일을 쓰거나 파일 처리를 사용할 필요가 없다는 것입니다.

예를 들어 :

이 코드를 C ++로 작성

void main()    
{
    clrscr();
    cout<<"helloooooo" ;

    cout<<"\f";
    cout<<"hiiiii" ;

}

당신이를 컴파일 할 때이 EXE 파일 생성 (예를 들어. abc.exe)

다음을 사용하여 출력을 파일로 리디렉션 할 수 있습니다.

abc > xyz.doc

hellooo와 hiiii ...xyz.doc 사이의 실제 페이지 나누기를 볼 수 있는 파일을 엽니 다 .


21

위의 정보 외에도 LF (\ n) 및 CR (\ r)에 대한 흥미로운 기록이 있습니다. [원저자 : 阮一峰 출처 : http://www.ruanyifeng.com/blog/2006/04/post_213.html] 컴퓨터가 나오기 전에 Teletype Model 33이라는 텔레 프린터 유형이있었습니다. 각각 10 인쇄 할 수 있습니다. 둘째. 그러나 이것에 대한 한 가지 문제가 있습니다. 각 줄 인쇄를 마친 후 다음 줄로 이동하는 데 0.2 초가 걸립니다. 이는 2 자 인쇄 시간입니다. 이 0.2 초 동안 새 문자가 전송되면이 새 문자가 손실됩니다.

그래서 과학자들은이 문제를 해결하는 방법을 찾았고, 각 줄 뒤에 두 개의 끝 문자를 추가했습니다. 하나는 '캐리지 리턴'입니다. 이는 프린터가 프린트 헤드를 왼쪽으로 가져 오도록 지시합니다.; 다른 하나는 '줄 바꿈'이며 프린터는 용지를 한 줄 위로 이동하도록 지시합니다.

나중에 컴퓨터가 대중화되면서이 두 개념은 컴퓨터에서 사용됩니다. 당시 저장 장치는 매우 비 쌌기 때문에 일부 과학자들은 각 줄의 끝에 두 문자를 추가하는 것이 비싸며 하나는 충분하므로 어느 것을 사용 해야하는지에 대한 몇 가지 주장이 있습니다.

UNIX / Mac 및 Linux에서는 각 줄 끝에 '\ n'이, Windows에서는 각 줄 끝에 '\ r \ n'이 있습니다. 이 사용으로 인해 Windows에서 열면 UNIX / Mac의 파일이 한 줄에 표시됩니다. Windows의 파일은 UNIX 또는 Mac에서 열 경우 각 줄 끝에 ^ M이 하나씩 있습니다.


1
OSX 릴리스 (BSD 유닉스 기반)에서 Mac은 '\ n'-Unix 줄 끝으로 전환되었습니다.
Jonathan Cross

"Windows에서 열면 UNIX / Mac의 파일이 한 줄에 표시됩니다." WRITE.EXE(일명 워드 패드)는 잘 표시 할 수 있습니다.
thecarpy

18

오래된 용지 프린터 터미널에서 다음 줄로 진행하려면 프린트 헤드를 수평 스캔 범위의 시작 (캐리지 리턴)으로 다시 이동하고 인쇄중인 용지 롤을 올리는 (라인 피드) 두 가지 작업이 필요했습니다.

우리는 더 이상 종이 프린터 터미널을 사용하지 않기 때문에 이러한 작업은 더 이상 관련이 없지만 신호를 보내는 데 사용되는 캐릭터는 다양한 화신에 갇혀 있습니다.


실제로 '캐리지 리턴'은 프린트 헤드를 왼쪽으로 이동시키지 않지만 인자 판을 고정하는 캐리지를 오른쪽으로 이동시킵니다. 이를 위해 왼손으로 긴 레버를 사용했습니다. 참조 en.wikipedia.org/wiki/Typewriter
마크 Lakata

2
@MarkLakata 타자기에게는 사실이지만이 답변은 오래된 인쇄 터미널에 관한 것입니다. 예를 들어 DEC LA36 ( columbia.edu/cu/computinghistory/la36.html )입니다.
Peter Cardona

12

IBM 1403 임팩트 프린터를 고려하십시오. CR은 프린트 헤드를 줄의 시작 부분으로 옮겼지만 용지를 전진시키지 않았습니다. 이를 통해 "중복 인쇄"가 가능하여 한 줄에 여러 줄의 출력을 배치 할 수 있습니다. 밑줄과 같은 것은 BOLD 인쇄와 마찬가지로 이런 식으로 달성되었습니다. LF는 종이를 한 줄 발전 시켰습니다. CR이없는 경우 LF가 프린트 헤드를 움직이지 않았기 때문에 다음 행이 지그재그로 인쇄됩니다. FF는 다음 페이지로 용지를 전진 시켰습니다. 또한 일반적으로 프린트 헤드를 새 페이지의 첫 번째 줄의 시작 부분으로 옮겼지만 CR이 필요할 수 있습니다. 확실히, 대부분의 프로그래머는 FF에 의해 생성 된 추가 CR이 중요하지 않기 때문에 페이지의 마지막 줄 끝에서 CRLF 대신 CRFF를 코딩했습니다.


이것은 캐리지 리턴의 전체 의미를 설명하는 유일한 답변입니다.
Lee

12

요약하자면 :

Carriage_return ( \r또는 0xD)에서 제어권을 시작 으로 같은 라인 .

Line_Feed ( \n또는 0xA) : 다음 줄시작할 때 제어 합니다 .

(form_feed \f또는 0xC)에서 제어권을 시작 으로 다음 페이지 .


2
이와 같은 간결한 답변을 권장해야합니다.
user5280911

10

보충으로

1, 캐리지 리턴 : 인쇄 위치를 현재 의 시작으로 변경하는 프린터 용어입니다 줄 입니다. 컴퓨터 세계에서, 그것은 대부분의 경우 현재 줄의 시작으로 돌아가는 것을 의미하지만 거의 새로운 줄을 의미합니다.

2, 줄 바꿈 : 용지 한 줄 진행을 의미하는 프린터 용어입니다. 따라서 캐리지 리턴과 줄 바꿈이 함께 사용되어 새 줄의 시작 부분에서 인쇄를 시작합니다. 컴퓨터 세계에서는 일반적으로 개행과 동일한 의미를 갖습니다.

3, 용지 공급 : 프린터 용어이므로이 스레드 의 설명 마음에 듭니다 .

1980 년대 스타일의 프린터를 프로그래밍하는 경우 용지가 배출되고 새 페이지가 시작됩니다. 당신은 그것을 절대 필요로하지 않을 것이라고 확신합니다.

http://en.wikipedia.org/wiki/Form_feed

거의 사용되지 않으며 Escape sequence \ f-form feed-정확히 무엇입니까? 자세한 설명은.

일부 플랫폼에서는 CR 또는 LF 또는 CRLF를 사용하여 줄 바꿈을 나타낼 수 있지만 다른 플랫폼에서는 줄 바꿈을 사용할 수 없습니다. 자세한 내용은 Wiki Newline 을 참조하십시오.

LF : Multics, Unix 및 Unix 계열 시스템 (Linux, OS X, FreeBSD, AIX, Xenix 등), BeOS, Amiga, RISC OS 및 기타

CR : Commodore 8 비트 시스템, Acorn BBC, ZX Spectrum, TRS-80, Apple II 제품군, Oberon, 최대 버전 9까지의 기존 Mac OS, MIT Lisp Machine 및 OS-9

RS : QNX 사전 POSIX 구현

0x9B : ASCII의 ATASCII 변형 (10 진수 155)을 사용하는 Atari 8 비트 시스템

CR + LF : Microsoft Windows, DOS (MS-DOS, PC DOS 등), DEC TOPS-10, RT-11, CP / M, MP / M, Atari TOS, OS / 2, Symbian OS, Palm OS, Amstrad CPC 및 기타 초기 비 유닉스 및 비 IBM OS

LF + CR : Acorn BBC 및 RISC OS 스풀 텍스트 출력.


3

"\ n"은 줄 바꿈 문자입니다. 그것은 현재 줄을 끝내고 그것을 읽는 사람을 위해 새로운 줄로 간다는 것을 의미합니다.


3

캐리지 리턴 및 줄 바꿈은 타자기에 대한 참조이기도합니다. 캐리지 왼쪽의 손잡이를 약간만 누르면 (용지가 이동하는 위치) 용지가 실린더 주위에서 약간 회전하여 한 줄로 문서화하십시오. 한 줄을 입력 한 후 다음 줄로 넘어 가고 싶을 경우 줄을 전진하고 캐리지를 오른쪽 끝까지 밀었 다가 각 키를 눌렀을 때 캐리지가 다시 움직일 때 다시 왼쪽에서 오른쪽으로 다시 시작 . 말할 것도없이, 워드 랩은 그 시대의 모든 워드 프로세싱을위한 기본 설정이었습니다. P : D


2

"새 줄"의 개념과 관련하여 인쇄되지 않는 문자입니다. \ n은 줄 바꿈입니다. \ r 캐리지 리턴입니다. 다른 플랫폼에서는 유효한 새 줄과 관련하여 다른 의미를 갖습니다. Windows에서 줄 바꾸기는 \ r \ n입니다. 리눅스에서는 \ n. Mac에서는 \ r.

실제로는 모든 문자열에 넣을 수 있으며 문자열 인쇄에 영향을 미칩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.