라인피드랑 캐리지 리턴이랑 뉴라인 개념점 알려주세요

voodoostein의 이미지

안녕하세요 ^^

정규식을 배우고 있는데, 정확히 캐리지 리턴이랑
라인피드 그리고 뉴라인의 의미를 잘 모르겠습니다.
셋다 줄 바꿈, 다음줄 시작같은데
프로그램상의 의미로 어떤 차이가 있는지 모르겠네요

검색해봤는데 씨언어에서는 캐리지 리턴이 CR+LF로 하구

유닉스에서는 LF로 하구 어쩌구 저쩌구하는데

정확히 모르겠습니다.

관련 문서를 알아볼순없을까요?

ㅠㅠ

햇갈리네요;;;

도와주세요 ^^

kane의 이미지

캐리지 리턴(CR)과 라인 피드(LF)는 느린 프린터의 유산인 걸로 알고 있습니다.
CR은 현재 위치를 나타내는 커서(?)를 맨 앞으로 이동시킨다는 뜻이고,
LF는 커서의 위치를 아랫줄로 이동시킨다는 뜻입니다.
이 두 동작을 합치면 뉴라인('\n')과 동일한 동작을 하게 됩니다.

굳이 두 동작으로 나눈 이유는 과거의 느린 프린터가 물리적인 동작을 취하는데 충분한 시간을 확보해주기 위해서 신호를 두 개로 나누어 보내주었기 때문이라고 알고 있습니다.

하지만 현재는 둘 중 하나만 있어도 뉴라인으로 간주합니다. 따라서 신경쓰지 않으셔도 됩니다. (아~~주 가끔 그 문제로 삽질을 하는 경우도 있을 수는 있지만..- -+)

그리고 LF로 뉴라인을 나타내는지 CR+LF로 뉴라인을 나타내는지는 언어의 차이가 아니라 시스템의 차이입니다.
Unix-like 시스템에서는 LF로,
윈도우즈에서는 CR+LF로 표현합니다.

덧붙이자면,
정규식에서는 CR과 LF는 의미가 없습니다.
모두 뉴라인 하나로 표현됩니다.

lena111의 이미지

좋은글 감사합니다.
http://lena19760323.tistory.com 로 출처남기고 퍼갈게요

voodoostein의 이미지

즉 캐리지 리턴은 현재 라인에서 다음줄로 이동하고 맨 처음으로 간다는것이군요

라인피드는 현재 라인에서 다음줄로 이동하긴 하는데
맨처음으로 가지않구 커서 바로 밑으로 이동한다는것이군요

이제야 알았네요 ^^

정규식에서 캐리지 리턴이랑 라인피드랑 뉴라인이 나와서

잘 몰랐어여 ㅠㅠ

아무래도 프린터쪽으로 알아봤어야 하는건데

자세한 설명 감사합니다. ^^

C'est la vie

Necromancer의 이미지

윈도우(예전 도스 포함)에서는 CR+LF로 씁니다.

유닉스계얼은 LF만 있습니다.

MAC은 CR만 있으면 줄바꿈문자로 해석됩니다.

아직도 이때문에 문제 발생하는 경우 꽤 있습니다.

그리고 CR은 ASCII 코드가 0xD (13), LF는 0xA (10)입니다.

Written By the Black Knight of Destruction

pynoos의 이미지

구식 수동 타자기는 종이를 감은 다음 타자를 칩니다.
한줄을 친다음 왼쪽에 있는 긴 쇠막대기를 주욱 밀죠..
이때 일어 나는 일은 종이를 감은 로울러가 오른쪽으로 주욱 다시 밀려나는 것과
톱니로 되어 있는 바퀴가 조금 굴러 로울러가 돌아가는 것입니다.

이 두가지가 동시에 일어 나는데, 로울러가 수평이동하여
종이의 맨 왼쪽에 글자를 칠 준비를 하는 것을 Carriage Return이라하고
종이를 조금 올려 다음줄을 준비하는 것을 Line Feed 라고 합니다.

즉, Carriage (종이 이동체)를 원상태로 돌려 놓는 수평이동과
종이를 수직으로 한 글자 분량 올리는 새로운 선을 제공하는 행위 Line을 Feed하는 행위가 합하여 있는 것입니다.

줄바꿈을 한다는 것은 Windows의 CR+LF가 모든 동작을 그대로 표현한다고 생각하시면 됩니다.

New Line이라는 것은 위와 같은 행동을 말하는 것인데, 그것이 OS 마다 어떤 코드의 조합으로 되어 있느냐는 CR+LF, CR, LF 등으로 다를 수 있는 것입니다.

그나마 LF+CR이란 조합이 없는 것이 다행아닐까요.. 쩝... :(

ksunghwank의 이미지

감사합니다. ^^

TreCool의 이미지

갈아입었습니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.