8

C ++では、いくつかの文字を追加するために1行前に戻ろうとしています。これまでの私のコードは次のとおりです。

cout << "\n\n\n\n\n\n\n\n\n\n\xc9\xbb\n\xc8\xbc"<<flush;
Sleep(50);

ご覧のとおり、改行文字は10文字です。私のアニメーションでは、新しいブロックが画面の上部から落下します。しかし、必要な文字を追加するためにそれらの行に戻る方法がわかりません。私は\rを試しましたが、それは何もしませんし、\bも前の行に上がりません。また、フラッシュは正確に何をしますか?私はC++でプログラミングを始めてから約2日しか経っていないので、newb=Pです。

本当にありがとう!!!

キリスト教徒

4

3 に答える 3

17

コンソールがVT100エスケープシーケンスをサポートしている場合(ほとんどの場合)、次のように使用できますESC [ A

cout << "\x1b[A";

カーソルを1行上に移動します。必要に応じて繰り返します。

于 2012-04-07T20:28:32.967 に答える
4

Windowsでは、この例を使用できます

そこで CreateConsoleScreenBuffer() を作成し、SetConsoleCursorPosition(console_handle, dwPosition); を使用します。

于 2013-03-12T10:05:24.427 に答える
0

cout最初に内部バッファに書き込み、挿入されるすべての文字に対してではなく、定期的にのみ画面に出力します。これはパフォーマンス上の理由によるものです。

flush今すぐバッファを空にして画面に表示するように指示します。

ncursesのようなライブラリを検討する必要があります。

于 2012-04-07T20:29:44.657 に答える