1. ホーム
  2. newline

[解決済み] ୧⃛(๑⃙⃘◡̈๑⃙⃘)

2022-03-14 20:23:52

質問

とはどう違うのですか? \n (改行)と \r (キャリッジリターン)ですか?

特に 実用的 との違いは \n\r ? どちらかを使うべき場所はあるのでしょうか?

どのように解決するのですか?

アスキーコードで言うと、3 -- それぞれ10と13なので;-)。

でも、マジで多いんですよ。

  • Unix およびすべての Unix ライクなシステムで。 \n は行末を表すコードです。 \r は特に意味はありません。
  • その結果、C言語やそれを(遠隔的にでも)コピーするほとんどの言語では \n は行末を表す標準的なエスケープシーケンスです(必要に応じて OS 固有のシーケンスに変換されます)。
  • 古いMacシステム(OS X以前)では \r は行末を表すコードで、代わりに
  • Windows(および多くの古いOS)では、行末を表すコードは2文字です。 \r\n この順番で
  • というのは、(Windowsよりずっと古いOSを思い起こすと)意外な結果なのです。 \r\n は、インターネット上のテキスト形式の標準的な行終端です。
  • 電気機械式テレタイプのような端末用。 \r は、キャリッジが左端のストップにぶつかるまで左方向に戻るよう命令する(ゆっくりした動作)。 \n はローラーを1行巻き上げるように命令する(もっと速い動作)--これが、常に \r 前に \n キャリッジが左回りのままでもローラーが動くように!-) ウィキペディアには より詳しい説明 .
  • 文字モード端末(通常は上記のようなさらに古い印刷用端末をエミュレートしている)用の、raw モード。 \r\n は同じように動作します(ただし、カーソルの点ではどちらも キャリッジやローラーなし;-)

実際には、テキストファイルへの書き込みという現代的な文脈では、常に \n (Windowsなどの変なOSを使っている場合は、基礎となるランタイムが翻訳してくれます;-)。このように \r は、キャラクターターミナル(あるいはそれをエミュレートしたコンソールウィンドウ)に書いていて、次に書く行が直前に書いた行を上書きしたい場合です(例えばプログレスバーなどのおふざけの "ascii animation" 効果に使うことがあります) -- GUIの世界ではこれはかなり陳腐化していますが;-) 。