캐리지 리턴, 줄 바꿈 및 용지 공급이란 무엇입니까?
다음 제어 문자의 의미는 무엇입니까?
캐리지 리턴
줄 바꿈
용지 공급
캐리지 리턴은 아래쪽으로 진행하지 않고 현재 줄의 시작 부분으로 돌아가는 것을 의미합니다. 이름은 화일에 모니터가 드물었 기 때문에 이름은 프린터 운송에서 나왔습니다. 이것은 일반적으로 "\ r", 이스케이프 된 CR로 이스케이프되며 ASCII 값 13 또는 0x0D를 갖습니다.
줄 바꿈은 다음 줄로 내려가는 것을 의미합니다. 그러나 용도와 이름이 변경되었습니다. "줄 바꿈"으로 사용되며 행 을 종료 합니다 (일반적으로 구분 행 과 혼동 됨 ). 이것은 일반적으로 "\ n"으로 이스케이프되고 LF 또는 NL로 축약되며 ASCII 값은 10 또는 0x0A입니다. CRLF (CRNL은 아님)가 "\ r \ n"쌍에 사용됩니다.
용지 공급은 다음 "페이지"로 내려가는 것을 의미합니다. 일반적으로 페이지 구분 기호로 사용되었지만 이제는 섹션 구분 기호로도 사용됩니다. (논리적으로 독립적 인 기능 또는 기능 그룹을 나누기 위해 소스 코드에서 일반적으로 사용되지 않습니다.) 텍스트 편집기는 "페이지 나누기 삽입"시이 문자를 사용할 수 있습니다. 이것은 일반적으로 "\ f"로 이스케이프되고 FF로 축약되며 ASCII 값 12 또는 0x0C를 갖습니다.
제어 문자로서 다양한 방식으로 해석 될 수 있습니다.
가장 일반적인 차이점 (그리고 아마도 걱정할만한 유일한 것)은 Windows의 CRLF, Unix와 같은 NL 및 구형 Mac의 CR로 끝납니다 (OS X의 상황은 Unix와 비슷하게 바뀌 었습니다). LF에서 NL 로의 의미 이동은 정확히 동일한 문자에 대해 Windows와 Unix의 차이점을 나타냅니다. (Windows는 물론 Unix보다 최신 버전이므로이 의미 체계적 변화를 채택하지 않았습니다. CR을 사용하는 Mac의 역사를 모르겠습니다.) 많은 텍스트 편집기는이 세 가지 형식의 파일을 읽고 서로 변환 할 수 있습니다. 모든 유틸리티가 가능한 것은 아닙니다.
양식 피드는 좀 더 흥미 롭습니다 (직접 사용하는 경우는 드물지만). 페이지 구분 기호의 일반적인 정의에서는 줄 사이 (예 : 줄 바꿈 순서 NL, CRLF 또는 CR 이후) 또는 시작 또는 시작시에만 올 수 있습니다. 파일의 끝.
\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
Wikipedia를 살펴보십시오 .
ASCII 또는 호환 가능한 문자 집합을 기반으로하는 시스템은 LF (줄 바꿈, '\ n', 0x0A, 10 진수 10) 또는 CR (캐리지 리턴, '\ r', 0x0D, 10 진수 13) 또는 개별적으로 CR을 사용합니다. LF (CR + LF, 0x0D 0x0A). 이러한 문자는 프린터 명령을 기반으로합니다. 줄 바꿈은 한 줄의 용지가 프린터에서 공급되어야하고 캐리지 리턴은 프린터 캐리지가 현재 줄의 시작 부분으로 돌아 가야한다는 것을 나타냅니다.
\f
페이지 나누기에 사용됩니다. 콘솔에서 아무 효과도 볼 수 없습니다. 그러나 파일 에서이 문자 상수를 사용하면 차이를 볼 수 있습니다.
다른 예는 출력을 파일로 리디렉션 할 수 있으면 파일을 쓰거나 파일 처리를 사용할 필요가 없다는 것입니다.
예를 들어 :
이 코드를 C ++로 작성
void main()
{
clrscr();
cout<<"helloooooo" ;
cout<<"\f";
cout<<"hiiiii" ;
}
당신이를 컴파일 할 때이 EXE 파일 생성 (예를 들어. abc.exe
)
다음을 사용하여 출력을 파일로 리디렉션 할 수 있습니다.
abc > xyz.doc
그런 다음 hellooo와 hiiiixyz.doc
사이의 실제 페이지 나누기를 볼 수 있는 파일을 엽니 다 ....
위의 정보 외에도 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이 하나씩 있습니다.
기존의 용지 프린터 터미널에서 다음 줄로 진행하려면 프린트 헤드를 수평 스캔 범위의 시작 (캐리지 리턴)으로 다시 이동하고 인쇄중인 용지 롤을 올리는 (라인 피드) 두 가지 작업이 필요했습니다.
우리는 더 이상 종이 프린터 터미널을 사용하지 않기 때문에 이러한 작업은 더 이상 관련이 없지만 신호를 보내는 데 사용되는 캐릭터는 다양한 화신에 갇혀 있습니다.
IBM 1403 임팩트 프린터를 고려하십시오. CR은 프린트 헤드를 줄의 시작 부분으로 옮겼지만 용지를 전진시키지 않았습니다. 이를 통해 "중복 인쇄"가 가능하여 한 줄에 여러 줄의 출력을 배치 할 수 있습니다. 밑줄과 같은 것은 BOLD 인쇄와 마찬가지로 이런 식으로 달성되었습니다. LF는 종이를 한 줄 발전 시켰습니다. CR이없는 경우 LF가 프린트 헤드를 움직이지 않았기 때문에 다음 행이 지그재그로 인쇄됩니다. FF는 다음 페이지로 용지를 전진 시켰습니다. 또한 일반적으로 프린트 헤드를 새 페이지의 첫 번째 줄의 시작 부분으로 옮겼지만 CR이 필요할 수 있습니다. 확실히, 대부분의 프로그래머는 FF에 의해 생성 된 추가 CR이 중요하지 않기 때문에 페이지의 마지막 줄 끝에서 CRLF 대신 CRFF를 코딩했습니다.
보충으로
1, 캐리지 리턴 : 인쇄 위치를 현재 줄 의 시작 부분으로 변경하는 프린터 용어 입니다. 컴퓨터 세계에서, 그것은 대부분의 경우 현재 줄의 시작으로 돌아가는 것을 의미하지만 거의 새로운 줄을 나타냅니다.
2, 줄 바꿈 : 용지 한 줄 진행을 의미하는 프린터 용어입니다. 따라서 캐리지 리턴과 줄 바꿈이 함께 사용되어 새 줄의 시작 부분에서 인쇄를 시작합니다. 컴퓨터 세계에서는 일반적으로 개행과 동일한 의미를 갖습니다.
3, 용지 공급 : 프린터 용어 입니다. 이 글 의 설명 이 마음에 듭니다 .
1980 년대 스타일의 프린터를 프로그래밍하는 경우 용지가 배출되고 새 페이지가 시작됩니다. 당신은 그것을 절대 필요로하지 않을 것이라고 확신합니다.
거의 사용되지 않으며 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 스풀 텍스트 출력.
"\ n"은 줄 바꿈 문자입니다. 그것은 현재 줄을 끝내고 그것을 읽는 사람을 위해 새로운 줄로 간다는 것을 의미합니다.
캐리지 리턴 및 줄 바꿈은 타자기에 대한 참조이기도합니다. 캐리지 왼쪽의 손잡이를 약간만 누르면 (용지가 이동하는 위치) 용지가 실린더 주위에서 약간 회전하여 한 줄로 문서화하십시오. 한 줄을 입력 한 후 다음 줄로 넘어 가고 싶을 경우 줄을 전진하고 캐리지를 오른쪽 끝까지 밀었 다가 각 키를 눌렀을 때 캐리지가 다시 움직일 때 다시 왼쪽에서 오른쪽으로 다시 시작 . 말할 필요도없이, 워드 랩은 그 시대의 모든 워드 프로세싱을위한 기본 설정이었습니다. P : D
이들은 "새 줄"의 개념과 관련하여 비 인쇄 문자입니다. \ n은 줄 바꿈입니다. \ r는 캐리지 리턴입니다. 다른 플랫폼에서는 유효한 새 줄과 관련하여 다른 의미를 갖습니다. Windows에서 줄 바꿈은 \ r \ n입니다. 리눅스에서는 \ n. Mac에서는 \ r.
실제로는 모든 문자열에 넣고 문자열 인쇄에 영향을 미칩니다.
참고 URL : https://stackoverflow.com/questions/3091524/what-are-carriage-return-linefeed-and-form-feed
'development' 카테고리의 다른 글
Hi / Lo 알고리즘은 무엇입니까? (0) | 2020.02.16 |
---|---|
파이썬에서 현재 시간을 밀리 초 단위로 얻으시겠습니까? (0) | 2020.02.16 |
PowerShell에서 명령 줄 인수를 처리하는 방법 (0) | 2020.02.16 |
긴 형식을 지정하는 printf의 주장은 무엇입니까? (0) | 2020.02.16 |
SSH를 통한 파일 전송 (0) | 2020.02.16 |