次の制御文字の意味は何ですか。
キャリッジリターン
改行
フォームフィード
次の制御文字の意味は何ですか。
キャリッジリターン
改行
フォームフィード
回答:
キャリッジリターンとは、下に進まずに現在の行の先頭に戻ることを意味します。名前が造られたときにモニターが珍しかったので、名前はプリンターの馬車に由来します。これは通常\r
、CRと省略されてエスケープされ、ASCII値13
or を持ちます0x0D
。
改行とは、次の行に下に進むことです。ただし、目的は変更され、名前が変更されました。「改行」として使用され、行を終了します(通常、行の区切りと混同されます)。これは通常\n
、としてエスケープされ、LFまたはNLと省略され、ASCII値10
またはを持ちます0x0A
。ペアにはCRLF(CRNLではない)が使用され\r\n
ます。
フォームフィードとは、次の「ページ」に下に進むことを意味します。ページ区切りとして一般的に使用されていましたが、現在はセクション区切りとしても使用されています。(論理的に独立した関数または関数のグループを分割するためにソースコードで一般的に使用されることはありません。)テキストエディターは、「改ページを挿入する」ときにこの文字を使用できます。これは一般的にFFと\f
省略されてエスケープされ、ASCII値or を持ちます。12
0x0C
制御文字として、それらはさまざまな方法で解釈されます。
最も一般的な違い(そして心配する価値のある唯一の違い)は、WindowsではCRLF、UnixライクではNL、古いMacではCR(状況はOS XでUnixのように変わった)で終わる行です。まったく同じ文字の場合、LFからNLへの意味の変化により、WindowsとUnixの違いがわかります。(もちろん、WindowsはUnixよりも新しいため、このセマンティックシフトは採用されていません。CRを使用しているMacの履歴はわかりません。)多くのテキストエディターは、これら3つの形式のいずれかでファイルを読み取り、それらの間で変換できます。 、すべてのユーティリティができるわけではありません。
フォームフィードは少し面白く(直接使用されることはあまりありませんが)、ページ区切りの通常の定義では、行間(例:NL、CRLF、またはCRの改行シーケンスの後)または最初またはファイルの終わり。
\x0c
ですか?
\r
キャリッジリターンで、カーソルを後ろに移動します。
printf("stackoverflow\rnine")
ninekoverflow
「9」は4文字であるため、カーソルが「stackoverflow」の先頭に移動し、最初の4文字が上書きされます。
\n
改行文字であり、行を変更して、カーソルを次のように改行の先頭に移動します-
printf("stackoverflow\nnine")
stackoverflow
nine
\f
フォームフィードです。その使用は廃止されましたが、次のようなインデントを付けるために使用されます
printf("stackoverflow\fnine")
stackoverflow
nine
私が次のように書いたら
printf("stackoverflow\fnine\fgreat")
stackoverflow
nine
great
printf
ユーティリティを使用して、少なくともLinuxシェルで同じことができます。または、echo -en
どちらがbashビルトインであるかを使用します。
\f
は実際には\v
-垂直タブですが、どちらもコンソールでは同じように見えます。
printf("123\f456\f789");
コンソールに/> <bold> 123456789 </ bold>を表示します。
\f
改ページに使用されます。コンソールには何の影響もありません。ただし、この文字定数をファイルで使用すると、違いがわかります。
他の例としては、出力をファイルにリダイレクトできる場合、ファイルを記述したり、ファイル処理を使用したりする必要はありません。
例:
このコードをC ++で書く
void main()
{
clrscr();
cout<<"helloooooo" ;
cout<<"\f";
cout<<"hiiiii" ;
}
あなたがこれをコンパイルするとき、それは(例のために。exeファイルを生成しますabc.exe
)
次に、これを使用して出力をファイルにリダイレクトできます。
abc > xyz.doc
次にファイルxyz.doc
を開くと、実際の改ページが表示されます helloooとhiiii ...の改ます。
上記の情報とは別に、LF(\ n)とCR(\ r)には興味深い歴史があります。[元の作者:阮一峰出典:http ://www.ruanyifeng.com/blog/2006/04/post_213.html ] コンピュータが登場する前は、テレタイプ33と呼ばれるテレプリンターがありました。第二。しかし、これには1つの問題があります。各行の印刷が完了した後、次の行に移動するのに0.2秒かかります。これは、2文字を印刷する時間です。この0.2秒間に新しい文字が転送されると、この新しい文字は失われます。
そこで科学者たちはこの問題を解決する方法を見つけました。彼らは各行の後に2つの終了文字を追加します。1つは「キャリッジリターン」です。もう1つは「改行」で、用紙を1行上に移動するようにプリンターに指示します。
その後、コンピュータが普及し、これら2つの概念がコンピュータで使用されます。当時、ストレージデバイスは非常に高価だったため、各行の終わりに2文字を追加するのは高価であり、1つで十分であるため、どの文字を使用するかについていくつかの議論があります。
UNIX / MacおよびLinuxでは、「\ n」は各行の終わりに置かれ、Windowsでは、「\ r \ n」は各行の終わりに置かれます。この使用の結果、UNIX / Mac内のファイルは、Windowsで開くと1行で表示されます。一方、Windowsのファイルは、UNIXまたはMacで開いた場合、各行の終わりに1つの^ Mがあります。
WRITE.EXE
(別名ワードパッド)でも問題なく表示できます。
古いペーパープリンター端末では、次の行に進むには2つのアクションが必要でした:プリントヘッドを水平走査範囲の先頭(キャリッジリターン)に戻すことと、印刷される用紙のロールを進める(ラインフィード)。
ペーパープリンター端末を使用しなくなったので、これらのアクションは実際には関係ありませんが、それらを通知するために使用されたキャラクターがさまざまな化身に残っています。
IBM 1403インパクトプリンターについて考えてみます。CRはプリントヘッドを行の先頭に移動しましたが、用紙を進めませんでした。これにより、「オーバープリント」が可能になり、複数行の出力が1行に配置されました。下線のようなものは、BOLDプリントと同様に、この方法で実現されました。LFは紙を1行進めました。CRがない場合、LFはプリントヘッドを動かさなかったため、次の行は千鳥状に印刷されます。FFは論文を次のページに進めました。また、通常は印刷ヘッドを新しいページの最初の行の先頭に移動しましたが、そのためにCRが必要になる場合があります。確かに、ほとんどのプログラマーは、ページの最後の行の終わりにCRFFではなくCRFFをコーディングしました。これは、FFによって作成される追加のCRは重要ではないためです。
要するに :
Carriage_return(\r
または0xD
):同じ行の先頭で制御を取得する。
Line_Feed(\n
または0xA
):で制御を取るために開始すると、次の行。
FORM_FEED(\f
または0xC
):で制御を取るために開始すると、次のページ。
補足として、
1、キャリッジリターン:プリンターの用語で、印刷位置を現在の先頭に変更することを意味します行のます。コンピュータの世界では、ほとんどの場合、現在の行の先頭に戻ることを意味しますが、新しい行を表すことはほとんどありません。
2、改行:紙を1行進めるというプリンター用語です。そのため、改行と改行を併用して、新しい行の先頭から印刷を開始します。コンピュータの世界では、通常、改行と同じ意味です。
3、フォームフィード:プリンターの用語です。このスレッドの説明が好きです。
1980年代スタイルのプリンター用にプログラミングしている場合、用紙を排出して新しいページを開始します。あなたはそれを絶対に必要としないことは事実上確かです。
それはほとんど時代遅れであり、エスケープシーケンス\ f-フォームフィードを参照できます-正確には何ですか?詳細な説明については。
一部のプラットフォームではCRまたはLFまたはCRLFを使用して改行を表すことができますが、他の一部のプラットフォームでは改行を保持できないことに注意してください。詳細については、wiki改行を参照してください。
LF:Multics、UnixおよびUnixライクなシステム(Linux、OS X、FreeBSD、AIX、Xenixなど)、BeOS、Amiga、RISC OSなど
CR:コモドア8ビットマシン、Acorn BBC、ZX Spectrum、TRS-80、Apple IIファミリー、Oberon、バージョン9までのクラシックMac OS、MIT Lispマシン、OS-9
RS:QNX pre-POSIX実装
0x9B:ASCIIのATASCIIバリアント(10進数で155)を使用するAtari 8ビットマシン
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および非IBM OS
LF + CR:Acorn BBCおよびRISC OSスプールテキスト出力。
キャリッジリターンとラインフィードは、タイプライターにも当てはまります。キャリッジの左側にあるハンドル(用紙が入る場所)を少し押すと、用紙がシリンダーの周りを少し回転し、 1行を文書化します。1つの行の入力が終了し、次の行に進みたい場合は、強く押して、行を進め、キャリッジを右端までスライドさせ、キーストロークごとにキャリッジが移動するので、もう一度左から右への入力を再開しました。 。言うまでもなく、ワードラップは時代のすべてのワードプロセッシングのデフォルト設定でした。P:D