web-dev-qa-db-ja.com

C言語の改行文字は何ですか:\ rまたは\ n?

Cの改行文字とは何ですか? OSによって行末文字が異なることは知っていますが、Cの改行文字に変換されます。そのキャラクターは何ですか?

22
andy

\nです。テキストモードファイルを読み書きするとき、またはstdin/stdoutなどに対して、\nを使用する必要があり、Cが翻訳を処理します。バイナリファイルを扱うときは、定義上、自分で作成します。

47
Paul Griffiths

改行はsomecharと考えられ、'\n'の値を持ちます。 C11 5.2.1

このC改行は、Cソースコード、単一のcharとして、およびtextモードの場合のファイルI/Oの行末として表示されます。

  1. 多くのコンパイラは、ソーステキストをASCIIとして扱います。その場合、コード10、時には13、時には13、10をソースコードの改行としてペアにします。ソースコードが別の文字セットに含まれていた場合、異なるコードを使用できます。通常、この改行は、ソースコードの行の終わり(実際にはここでは少し複雑です)、//コメント、および#ディレクティブをマークします。

  2. ソースコードでは、2文字の\およびnは、char改行を\nとして表します。 ASCIIが使用される場合、このcharの値は10になります。

  3. ファイルI/Oでは、テキストモード、入力ファイル(およびstdin)のバイトの読み取り時に環境に応じて、バイトに値が含まれる場合of 10(Unix)、13,1、(* 1)(Windows)、13(Old Mac ??)およびその他のバリエーションは「\ n」に変換されます。ファイル(またはstdout)を書き込むと、逆変換が発生します。
    注:バイナリモードのファイルI/Oは変換を行いません。

ソースコードの'\r'は、キャリッジリターンcharです。

(* 1)単独の1および/または1\nに変換されます。

12
chux

改行を意味する場合、-改行文字\ nであり、\ rキャリアリターン文字ですが、改行で行末を意味する場合、それはオペレーティングシステムに依存します:DOSは改行と改行("\ r\n")を使用します。 "\ n"

9
pavel.lazar

'\ r' =キャリッジリターンおよび '\ n' =改行。

実際、異なるOSで使用する場合、いくつかの異なる動作があります。 Unixでは '\ n'ですが、Windowsでは '\ r' '\ n'です。

5
TittleTattle