\n
(줄 바꿈)과 \r
(캐리지 리턴) 의 차이점은 무엇입니까 ?
특히 와 사이에 실질적인 차이가 있습니까? 다른 하나 대신 사용해야하는 곳이 있습니까?\n
\r
답변
ASCII 코드의 관점에서 보면 각각 10과 13이므로 3입니다 .-).
그러나 진지하게 많은 것이 있습니다.
- 유닉스와 모든 유닉스 계열 시스템에서
\n
줄 끝의 코드이며\r
특별한 의미는 없습니다. - 결과적으로 C 및 대부분의 언어에서 (원격으로) 복사하는 대부분의 언어
\n
에서 줄 끝의 표준 이스케이프 시퀀스입니다 (필요에 따라 OS 특정 시퀀스로 /에서 변환 됨) - 구형 Mac 시스템 (OS X 이전 버전)에서
\r
줄 끝 코드 - Windows (및 이전의 많은 OS)에서 줄 끝 코드는 2 자 (
\r\n
순서대로)입니다. - (놀라운 😉 결과로서 (Windows보다 훨씬 오래된 OS로 되돌아가는)
\r\n
인터넷의 텍스트 형식에 대한 표준 줄 종결 - 전기 기계식 텔레타이프 같은 “터미널”의
\r
경우 캐리지가 가장 왼쪽에 닿을 때까지 왼쪽으로 되돌아 가도록 명령하고 (느린 작동)\n
롤러가 한 줄을 롤업하도록 명령합니다 (훨씬 더 빠른 작동).\r
전에\n
, 캐리지가 여전히 왼쪽으로가는 동안 롤러 이동할 수 있음 -!) 위키 백과는이 자세한 설명을 . - 원시 모드에서 문자 모드 터미널 (일반적으로 위와 같이 더 오래된 인쇄를 에뮬레이트 함)의 경우
\r
와\n
유사하게 작동합니다 ( 캐리지 또는 롤러 가 없으므로 커서 측면에서 둘 다 제외).
실제로 텍스트 파일에 쓰는 현대적인 상황에서는 항상 사용해야합니다 \n
(기본 런타임은 Windows와 같은 이상한 OS 인 경우이를 번역합니다). 사용하는 유일한 이유 \r
는 문자 터미널 (또는이를 모방 한 “콘솔 창”)에 쓰고 있고 마지막으로 쓴 마지막 줄을 덮어 쓰기 위해 다음 줄을 쓰고 싶을 때입니다 (때로는 구피에 사용되는 “아스키 애니메이션” “진행률 표시 줄의 효과)-GUI의 세계에서는 꽤 쓸모 없어지고 있습니다 ;-).
답변
역사적으로 a \n
는 캐리지를 아래 \r
로 이동하는 데 사용 되었지만 a 는 캐리지를 페이지의 왼쪽으로 다시 이동하는 데 사용되었습니다.
답변
두 개의 다른 캐릭터.
\n
유닉스 텍스트 파일에서 줄 끝 종결 자로 사용됩니다.
\r
Mac 텍스트 파일에서 줄 끝 종결 자로 사용됩니다.
\r\n
(즉 둘 다) Windows 및 DOS 텍스트 파일에서 행을 종료하는 데 사용됩니다.
답변
아무도 그것을 구체적으로 언급하지 않았기 때문에 (알거나 기억하기에는 너무 어리십니까?)-나는 \r\n
타자기 및 유사한 장치에 대한 출처 의 사용을 의심합니다 .
여러 줄을 지원하는 타자기를 사용하면서 줄 바꿈을 원할 경우 수행해야 할 두 가지 물리적 작업이있었습니다. 캐리지를 페이지의 시작 부분 (미국의 경우 왼쪽)으로 다시 밀고 용지를 한 단계 위로 급지하십시오. .
예를 들어, 라인 프린터 시절에 굵은 텍스트를 수행하는 유일한 방법은 줄 바꿈없이 캐리지 리턴을 수행하고 이전 문자에 동일한 문자를 인쇄하여 더 많은 잉크를 추가하여 더 어둡게 (굵게 표시)하는 것입니다. . 타자기에서 기계적인 “개행”기능이 실패했을 때, 이는 성가신 결과였습니다.주의를 기울이지 않으면 이전 텍스트 줄 위에 입력 할 수 있습니다.
답변
운영 체제마다 다른 두 가지 문자 또한 이것은 전송 TCP/IP
해야하는 데이터에서 중요한 역할 을합니다\r\n
.
\n
유닉스
\r
맥
\r\n
Windows와 DOS.
답변
완료하려면
쉘 (bash) 스크립트에서, \r
커서를 온라인에서 물론 온라인으로 보낼 수 있습니다.\n
커서를 새로운 행에 넣을 수 있습니다.
예를 들어 다음을 시도하십시오.
echo -en "AA--AA" ; echo -en "BB" ; echo -en "\rBB"
- 최초의 “에코”디스플레이
AA--AA
- 두번째 :
AA--AABB
- 마지막 :
BB--AABB
그러나 -en
매개 변수 로 사용하는 것을 잊지 마십시오 .
답변
Windows에서 \ n은 다음 줄의 시작 부분으로 이동합니다. \ r은 다음 줄로 이동하지 않고 현재 줄의 시작으로 이동합니다. 내 콘솔 응용 프로그램에서 \ r을 사용하여 일부 코드를 테스트하고 있으며 텍스트가 화면 위로 스크롤되는 것을보고 싶지 않으므로 프레임 속도 (예 : 프레임 속도 ( FPS), 나는 printf ( “%-10d \ r”, fps); 그러면 다음 줄로 이동하지 않고 커서를 줄의 시작 부분으로 되돌리고 프레임 속도가 동일한 줄에서 지속적으로 업데이트되는 동안 화면에서 스크롤되지 않는 다른 정보를 얻을 수 있습니다 (% -10은 특정 출력은 10 자 이상이며, 왼쪽으로 정렬되어 공백으로 채워져 해당 줄의 이전 값을 덮어 씁니다. 이런 것들에 매우 편리합니다.
작은 역사
/ r은 “return”또는 “carriage return”을 의미하며 타자기에 대한 기록이 있습니다. 캐리지 리턴은 줄의 시작 부분에 입력 할 수 있도록 캐리지를 오른쪽으로 끝까지 이동 시켰습니다.
/ n은 타자기 일부터 새 줄로 이동 한 날부터 “새 줄”을 나타냅니다. 비록 시작에 필연적이지 않기 때문에 일부 OS는 타자기가 수행 한 순서와 같이 / r 리턴과 / n 줄 바꿈이 모두 필요하다는 이유를 채택했습니다. 또한 사용 된 오래된 8 비트 컴퓨터에 대해서도 설명합니다. “캐리지 리턴”에서 “Enter”가 아닌 “Return”을 가져야합니다.