30

キャリッジリターン、ラインフィード、ニューラインの違いは何ですか?OSに依存しますか?次の行に進むためだけにそれらすべてを使用する必要があるのはなぜですか?

4

1 に答える 1

37

一般に、「改行」とは、新しい行を通知するものとして一般的に解釈される文字のセットを指します。これには、次のものが含まれます。

  • DOS/WindowsでのCRLF
  • 古いMacのCR
  • 最新のMacを含むUnixバリアント上のLF

CRはキャリッジリターンASCII文字(コード0x0D)であり、通常は\rで表されます。 LFは改行文字(コード0x0A)であり、通常は\nで表されます。

オリジナルのタイプライターベースのコンピューターは、これらの文字の両方を必要としていました。これは、彼らが言うことを正確に実行します。CRはキャリッジを紙の左側に戻し、LFはそれを1行で送りました。Windowsはこのシーケンスを変更せずに維持しましたが、Unixバリアントは、シンボリックにのみ必要とされた後、より効率的な文字の使用を選択しました。

このシーケンスをコードで表す必要がある場合は、プラットフォームに依存しない改行シンボルまたは関数を探すようにしてください。そうでない場合は、少なくとも上記の3つのバリエーションを考慮していることを確認してください。

歴史の詳細:http://www.codinghorror.com/blog/2010/01/the-great-newline-schism.html

于 2012-09-12T11:19:58.967 に答える