0

ユーザーからのコマンド (を使用) を受け入れながら、出力を常に出力する C++ コンソール アプリケーションがありますstd::cin。出力と入力は別々のスレッドで行われます。
出力が表示されているときにテキストを書くと、書かれたテキストがアプリケーションの出力と混ざります。どうすればこの動作を防ぐことができますか? コンソール

この問題を解決するには、テキストが入力されている行の1 行上にプログラムを表示する必要があります。私は Minecraft Bukkit サーバーのソリューションに刺激を受けますが、C++ にも同じことが必要です。

望ましい行動

4

2 に答える 2

0

pdcurses と呼ばれる ncurses の Windows ポートがあります。ただし、Visual Studio を使用している場合は、SetConsoleCursorPosition() という単純な関数が提供されています。

于 2013-10-06T14:40:03.687 に答える
0

入力中に出力を表示したい場合、出力を入力領域とは別の場所に移動させるには、いくつかの画面制御機能が必要です。このような端末への書き込みのようなものを実装する任務が与えられた場合、ncursesの経験をリフレッシュするでしょう。あなたが Windows コンソールを使用していることは認識していますが、それを実現するために必要な画面制御が Windows コンソールで可能かどうかはわかりません。

カスタム ストリーム バッファを内部で curses 機能に関連付けて使用することはできますが、その価値はないかもしれませんstd::cinstd::coutいずれにせよ、それは完全に自明ではありません。

于 2013-10-06T14:23:41.390 に答える