web-dev-qa-db-ja.com

Windowsのキャリッジリターンは、2文字または1文字で構成されていますか?

Windowsのキャリッジリターンは\r\n\n Unixでは、\r\nは2文字として扱われますか?

72
Oh Chin Boon

これらは2つの文字です。

  • \rは復帰です。
  • \nは改行です。

2つの文字を組み合わせて、Windowsの新しい行を表します。 Linuxでは、\nは改行を表します。 Linuxではカーソルを新しい行の先頭に移動します。 Windowsでは、カーソルはコンソールの同じ列にありますが、次の行にあります。

Linux上の\rには、Windowsと同じ効果があります。カーソルを行の先頭に移動します。 \rの代わりに\nが使用されている同じ行に異なる情報を印刷することができます。

103
Alexey Ivanov

実際には\r is 0x0D (^M) and \n is 0x0A (^J)ですが、Windowsの場合:

\n will write 0x0D 0x0A

uNIXの場合:

\r will write 0x0D
\n will write 0x0A
7
TMS

設定に依存します。 _\r\n_は2バイト幅(ASCII、UTF-8など)ですが、CのstdioライブラリなどのI/Oライブラリは、テキストモードで操作する場合、_\n_および_\r\n_準透過的。

つまり、Windowsプラットフォームでは、テキストモードストリーム_txt_in_を読み込むCプログラム

_while ((c = getc(txt_in)) != EOF)
    printf("%02x\n", c);
_

_\r_のASCIIコードを報告しません。逆に、putc('\n', txt_out)は実際にテキストモードストリーム_\r\n_に_txt_out_を書き込みます。 。

6
Fred Foo

Windowsは\r\nと他の2文字を区別しません。ただし、1つの文字として扱われる状況が1つあります。Cランタイムを使用してファイルをテキストとして開くと、ファイル内の\r\n\nとして読み取られ、\n\r\nとしてファイルに書き込まれます。

5
ymett

はい、2文字です。キャリッジリターン '\ r'の後に改行 '\ n'が続きます。

2
Peter Ruderman

WindowsでNotepad ++とSublime Text 2を使用していくつかのテスト(空想なし)を実行しましたが、\r\nは実際には2つの異なる文字であることがわかりましたが、...

Returnキーが押されたときに、異なるテキストエディタが\rを挿入する場合と挿入しない場合があります。

テキストエディタで次のことを試してください。

1
2
3
4
5

次に、Ctrl + Fを押して、正規表現を有効にし、\rを検索します。テキストエディタとその設定に応じて、各行の末尾の文字を「ヒット」または「ヒットしない」場合があります。上記のテキストが別のエディターからコピーアンドペーストされる場合、動作も異なる場合があります...

一部のテキストエディタでは、設定をカスタマイズできます。この場合、Returnを押したときに、\r\nまたはUNIXスタイル\nのどちらを挿入するかを指定できます。それに加えて、ファイルを保存する前に\r文字を削除または挿入することで、一貫したスタイルenforceを選択できる場合があります。

0
Asotos