\b
の使い方を理解するための小さなC++プログラムを作成しました。プログラムは以下の通りです - だから、C++でendlと nでバックスペースを使用する
#include <iostream>
using namespace std;
int main(){
cout << "Hello World!" << "\b";
return 0;
}
、このプログラムは、バックスペースが一つだけのスペースバックカーソルを移動し!
が印刷されていない理由buffer.So、からそれを削除していないため、所望の出力Hello World
.Thisは発生しません提供します?今
、だから、別のプログ
#include <iostream>
using namespace std;
int main(){
cout << "Hello World!" << "\b";
cout << "\nAnother Line\n";
return 0;
}
を考えてみましょう、ここでの出力がある - Hello World! Another Line
なぜバックスペースはここで働いていないのですか?改行はバッファをフラッシュするべきではないので、!
を削除する必要があります。ここで問題は何ですか?また
、私は\b
後endl
または\n
のいずれかを追加した場合、両方のケースでは、出力はHello World!
.But、改行文字であるendl
が出力の両方で同じであるか、buffer.Soをフラッシュし、一方、バッファをフラッシュしませんがケース?
2つの間違った仮定があります:.1。 _ "これは、バックスペースがカーソルを1つのスペースだけ戻すために起こるべきではありません..." _。 2. _ "しかし、改行文字はバッファをフラッシュしません..." _後者は実装依存です。 –
プログラムが終了すると、おそらく "!"を上書きするプロンプトが表示されます。プログラムが終了しても 'cout'はフラッシュされます。 '\ b'の仕組みは' C++ 'とは関係ありません。 'C++'はあなたがコンソールにそれを伝えるすべての文字を送信します。コンソールの動作はコンソールによって異なります。 – Galik
@πάνταῥεSo、 '\ n'を使ってバッファをフラッシュできますか? –