44

どちらも「改行」を意味しますが、どちらが使用されるのはいつですか。

4

8 に答える 8

65

\r\nWindowsスタイルです

\nPOSIXスタイルです

\rは古いOSX以前のMacスタイルであり、現代のMacはPOSIXスタイルを使用しています。


\rはキャリッジリターンで\nあり、ラインフィードです。モニターがない古いコンピューターでは、プログラムの結果をユーザーに出力するためのプリンターしかありません。左から新しいラインを見つめて印刷したい場合は、ラインフィードを取得\nする必要があります。キャリッジを最も左の位置に戻すために、これはWindowsプラットフォームで今回保存された古いコンピューターの構文からのものです。\r

于 2010-09-29T13:02:42.353 に答える
9

\nは改行を意味します。これは、カーソルが次の行に移動する必要があることを意味します。

\rはキャリッジリターンを意味します。これは、カーソルが行の先頭に戻る必要があることを意味します。

Unixプログラムは通常、改行(\ n)のみを必要とします。

通常、Windowsプログラムには両方が必要です。

于 2010-09-29T13:03:58.643 に答える
7

\ nは改行のみ、\ r \ nは改行とキャリッジリターンです(つまり、カーソルを左に移動します)。

于 2010-09-29T13:02:59.170 に答える
3

'\ n'はUnixのデフォルトであり、'\ r\n'はWindowsのデフォルトです。

于 2010-09-29T13:02:38.333 に答える
3

異なるオペレーティングシステムは、異なる方法で改行を処理します。最も一般的なものの短いリストは次のとおりです:DOSとWindows

彼らは、改行が2つの文字の組み合わせ、つまり'\ r \ n'(または13の後に10が続く)であることを期待しています。

Unix(したがってLinuxも)

Unixは、単一の「\n」を使用して改行を示します。

マック

Macは単一の「\r」を使用します。

そのため、フォルダパスなどを使用しているときに、アプリをWindowsからMacに移植すると、問題が発生します。

于 2010-09-29T13:03:27.017 に答える
2

これは、オペレーティングシステムのWindows(\ r \ n)およびLinux(\ n)で改行がどのように表されるかを示しています。

Unixでは、\ rはキャリッジリターン(CR)と\ naラインフィード(LF)であり、これらが一緒になってWindowsの改行識別子になり、Unixの改行識別子に置き換えます。

Windowsでは\rもCRですが、\nはCRとLFの組み合わせです。つまり、効果的にCR + CR+LFをCR+LFに置き換えようとしています。あまり意味がありませんね。

「perldocperlop」から:すべてのシステムは、仮想「「\ n」」を使用して、「改行」と呼ばれる行末記号を表します。不変の物理的な改行文字のようなものはありません。オペレーティングシステム、デバイスドライバ、Cライブラリ、およびPerlがすべて共謀して保存しているのは幻想にすぎません。すべてのシステムが""\ r""をASCIICRとして読み取り、 "" \n""をASCIILFとして読み取るわけではありません。たとえば、Macではこれらが逆になり、ラインターミネータのないシステムでは、「"\n"」を印刷しても実際のデータが出力されない場合があります。一般に、システムの「改行」を意味する場合は「 "\ n"」を使用しますが、正確な文字が必要な場合はリテラルASCIIを使用します。たとえば、ほとんどのネットワークプロトコルは、CR + LF( "" \ 015 \012""または"" \ cM \ cJ "")ラインターミネータの場合、 "" \ 012 ""だけを受け入れることがよくありますが、 "" \015""だけを許容することはめったにありません。ネットワーキングに""\ n ""を使用する習慣を身につけると、いつかやけどを負う可能性があります。

于 2010-09-29T13:04:42.367 に答える
1

違いは、異なるオペレーティングシステム間です。Windowsでは、改行文字は\r\nLinuxでは\nMac OSX\rであり、OSの設計者が何をしたかという問題があります。

于 2010-09-29T13:03:51.623 に答える
0

C#では、Environment.NewLineを使用できます

于 2010-09-29T13:58:03.263 に答える