Cの改行文字とは何ですか? OSによって行末文字が異なることは知っていますが、Cの改行文字に変換されます。そのキャラクターは何ですか?
\n
です。テキストモードファイルを読み書きするとき、またはstdin/stdoutなどに対して、\n
を使用する必要があり、Cが翻訳を処理します。バイナリファイルを扱うときは、定義上、自分で作成します。
改行はsomechar
と考えられ、'\n'
の値を持ちます。 C11 5.2.1
このC改行は、Cソースコード、単一のchar
として、およびtextモードの場合のファイルI/Oの行末として表示されます。
多くのコンパイラは、ソーステキストをASCIIとして扱います。その場合、コード10、時には13、時には13、10をソースコードの改行としてペアにします。ソースコードが別の文字セットに含まれていた場合、異なるコードを使用できます。通常、この改行は、ソースコードの行の終わり(実際にはここでは少し複雑です)、//コメント、および#ディレクティブをマークします。
ソースコードでは、2文字の\
およびn
は、char
改行を\n
として表します。 ASCIIが使用される場合、このchar
の値は10になります。
ファイルI/Oでは、テキストモード、入力ファイル(およびstdin)のバイトの読み取り時に環境に応じて、バイトに値が含まれる場合of 10(Unix)、13,1、(* 1)(Windows)、13(Old Mac ??)およびその他のバリエーションは「\ n」に変換されます。ファイル(またはstdout)を書き込むと、逆変換が発生します。
注:バイナリモードのファイルI/Oは変換を行いません。
ソースコードの'\r'
は、キャリッジリターンchar
です。
(* 1)単独の1および/または1も\n
に変換されます。
改行を意味する場合、-改行文字は\ nであり、\ rはキャリアリターン文字ですが、改行で行末を意味する場合、それはオペレーティングシステムに依存します:DOSは改行と改行("\ r\n")を使用します。 "\ n")
'\ r' =キャリッジリターンおよび '\ n' =改行。
実際、異なるOSで使用する場合、いくつかの異なる動作があります。 Unixでは '\ n'ですが、Windowsでは '\ r' '\ n'です。