newline - 違い - キャリッジリターン、ラインフィード、フォームフィードとは何ですか?




改行コード 違い 影響 (8)

"\ n"は改行文字です。 それは、現在の行を終了し、それを読んでいる誰のために新しい行に行くことを意味します。

以下の制御文字の意味は?

  1. キャリッジリターン

  2. 改行

  3. フォームフィード


IBM 1403インパクト・プリンターを考えてみましょう。 CRはプリントヘッドをラインの先頭に移動させたが、用紙を前進させなかった。 これにより、複数行の出力を1行に配置する「重ね刷り」が可能になりました。 下線のようなものは、BOLDプリントと同様にこの方法で実現しました。 LFは紙を1行進めました。 CRがない場合、LFはプリントヘッドを動かさなかったので、次のラインはずらされたステップとして印刷されます。 FFは、次のページに用紙を進めました。 また、通常、新しいページの最初の行の先頭にプリントヘッドを移動しましたが、そのためにCRが必要な場合があります。 確かに、ほとんどのプログラマは、FFで作成された余分なCRは問題ではないため、ページの最後の行の最後にCRLFではなくCRFFを記述しています。


\fは改ページに使用されます。 コンソールには何も表示されません。 しかし、この文字定数をファイルで使用すると、その違いを見ることができます。

他の例としては、出力をファイルにリダイレクトすることができれば、ファイルを書き込む必要はなく、ファイル処理を使う必要もありません。

例:

このコードをC ++で書く

void main()    
{
    clrscr();
    cout<<"helloooooo" ;

    cout<<"\f";
    cout<<"hiiiii" ;

}

これをコンパイルするとexe( abc.exe )が生成され、

次のようにして出力をファイルにリダイレクトすることができます:

abc > xyz.doc

xyz.docというファイルを開き、 helloooとhiiiiの間の実際のページを見ることができます....


\rはキャリッジリターンで、私がやるならばカーソルを戻します。

printf("\rnine")
ninekoverflow

"nine"は4文字の長さであるため、カーソルを ""の先頭に移動し、先頭の4文字を上書きすることを意味します。

\nは行を変更し、カーソルを新しい行の先頭に移動する改行文字です。

printf("\nnine")

nine

\fはフォームフィードです。その使用は廃止されましたが、インデントのように使用されています

printf("\fnine")

             nine

もし私が似たようなことを書くなら、

printf("\fnine\fgreat")

             nine
                 great

キャリッジリターンとは、下方向に進むことなく現在の行の先頭に戻ることを意味します。 この名前は、プリンタのキャリッジから来ています。名前が造られたときには、モニタはまれでした。 これは一般に "\ r"(CRと略記)としてエスケープされ、ASCII値13または0x0Dを持ちます。

改行とは、次の行に向かって下方に進むことを意味します。 しかし、それは再利用され、名前が変更されました。 "改行"として使用されると、行を終了させます(通常、行を分割することと混同します)。 これは一般に "\ n"(LFまたはNLと略記)としてエスケープされ、ASCII値10または0x0Aを持ちます。 ペア「\ r \ n」にはCRLF(CRNLではなく)が使用されます。

フォーム供給手段は、次の「ページ」に向かって下方に進む。 これはページセパレータとして一般的に使用されていましたが、セクションセパレータとしても使用されています。 (論理的に独立した関数や関数のグループを分割するためにソースコードで使用されることはめったにありません)テキストエディタは、「改ページを挿入する」ときにこの文字を使用できます。 これは一般に "\ f"(FFと略記)としてエスケープされ、ASCII値12または0x0Cを持ちます。

制御文字として、さまざまな方法で解釈される可能性があります。

最も一般的な違いは、Windows上ではCRLF、Unix系ではNL、古いMacではCR(OS XではUnixのように変更されています)の行末です。 LFからNLへの意味のシフトは、全く同じ文字のため、WindowsとUnixの違いを示しています。 (もちろん、WindowsはUnixよりも新しいので、このセマンティックシフトを採用していない。私はCRを使ってMacの歴史を知らない。)多くのテキストエディタは、これらの3つのフォーマットのいずれかでファイルを読み込み、すべてのユーティリティができるわけではありません。

フォームフィードは、(あまり一般的ではありませんが直接的には)面白いですが、ページセパレータの通常の定義では、行間(NL、CRLF、CRなどの改行シーケンスの後)ファイルの終わり。


キャリッジリターンと改行は、キャリッジの左側のハンドル(用紙が置かれる場所)を少し押すだけで、用紙がシリンダーの周りを少し回転し、 1行を文書化する。 1行の入力を終えて次の行に移動したい場合は、行を進めて右に移動した後、キャリッジが各キーストロークで移動したときに左から右にもう一度入力を再開する。 言うまでもなく、単語の折り返しは、時代のすべてのワープロのデフォルト設定でした。 P:D


古いペーパープリンタ端末では、次の行に進むには、プリントヘッドを水平走査範囲の先頭に戻す(キャリッジリターン)、印刷中のロール紙を前進させる(行送り)という2つの動作が必要でした。

ペーパープリンター端末はもはや使用されていないので、それらの動作はもはや重要ではありませんが、それらを伝えるために使用される文字は、様々な化身で詰まっています。


補足として、

1、 キャリッジリターン :プリンタの用語で、印刷位置を現在の行の先頭に変更することを意味します。 コンピュータ世界では、ほとんどの場合、現在の行頭に戻ることを意味しますが、めったに新しい行を表しません。

2、 行送り :プリンタの用語で、用紙を1行進めることを意味します。 したがって、改行と改行は一緒に使用され、改行の始めに印刷を開始します。 コンピュータ世界では、一般に改行と同じ意味を持ちます。

3、 フォームフィード :プリンタの用語ですが、私はこのスレッドの説明が好きです。

1980年代スタイルのプリンタ用にプログラミングしていた場合は、用紙を取り出して新しいページを開始します。 あなたはそれが決して必要でないことは事実上確実です。

http://en.wikipedia.org/wiki/Form_feed

ほとんど廃止されており、 エスケープシーケンス\ f - フォームフィードを参照することができます - 正確には何ですか? 詳細な説明は、

CRやLFやCRLFを使っていくつかのプラットフォームで改行を表すことができますが、他のいくつかのプラットフォームで改行を立てることはできません。 詳細はwiki改行を参照してください。

LF:Multics、UnixおよびUnixライクなシステム(Linux、OS X、FreeBSD、AIX、Xenixなど)、BeOS、Amiga、RISC OSなど

CR:Commodore 8ビットマシン、Acorn BBC、ZX Spectrum、TRS-80、Apple IIファミリ、Oberon、従来のMac OSバージョン9、MIT Lisp Machine、OS-9

RS:QNXプリPOSIX実装

0x9B:ASCIIのATASCIIバリアントを使用するAtari 8ビットマシン(10進数で155)

CR + LF:Microsoft Windows、DOS(MS-DOS、PC DOSなど)、DEC TOPS-10、RT-11、CP / M、MP / M、Atari TOS、OS / 2、Symbian OS、Palm OS、 Amstrad CPC、および他の初期のUnix以外のOSや非IBM OS

LF + CR:Acorn BBCおよびRISC OSのスプール・テキスト出力。