の下に出力されます: のstd :: coutのは、複数のテキストながら、出力はこのことをあるべきで、私はプロジェクトに取り組んできました
oo
oo
oo
###############
は、だから私は地面をしたい(##### ... ) 'o'の前に出力するが、std :: coutを使うと、上から下に行くので、これはうまくいかないようだ。これを解決するために使用できる方法はありますか、あるいは別の出力方法かもしれませんか?
の下に出力されます: のstd :: coutのは、複数のテキストながら、出力はこのことをあるべきで、私はプロジェクトに取り組んできました
oo
oo
oo
###############
は、だから私は地面をしたい(##### ... ) 'o'の前に出力するが、std :: coutを使うと、上から下に行くので、これはうまくいかないようだ。これを解決するために使用できる方法はありますか、あるいは別の出力方法かもしれませんか?
これ以上の調査が行われると、それは実行できますが、オペレーティングシステム固有のものです。私が見つけた 例は次のとおりです。
#include <iostream>
#include <windows.h> //This is where you will get the SetConsolePosition and
Coords struct
int main (void) {
COORD coord;
coord.X = 10;
coord.Y = 1;
std::cout << "Hello!" << std::endl;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
std::cout << "World!?" ;
return 0;
}
これはどのようにオペレーティングシステム固有のものですか? –
@ Kashif Faraz Shamsi OSはコンソールとは異なる動作をするためです。 Linuxコンソールの場合は、本当のネイティブモードの出力、WindowsやMacOSの場合はGUIになります。コンソールがエミュレートされています。しかし、Xサーバの下のLinuxでは、エミュレートされたコンソールにいるかもしれません。これはネイティブのものと全く同じではありません。 – Swift
コンソールハンドルを再利用するために保存することができることを示す方が良いでしょう。毎回getStdHandleを呼び出すことはおそらく最良の方法ではありません。 – Swift
さて、あなたは印刷しているあなたの文章の前に、あなたのコードに以下のコードを追加することができます。
cout<<"################\n";
cout<<"oo\n";
cout<<" oo\n";
cout<<" oo\n";
完全なコード:
の#include 名前空間stdを使用。
int main() {
cout<<"################\n";
cout<<"oo\n";
cout<<" oo\n";
cout<<" oo\n";
return 0;
}
OPは何を求めていたのではなく、彼はテキストモードでの出力方法を調整する必要があります。 – Swift
はい、今すぐ手に入れました。私の悪い。コードが以前に投稿された場合、私はそれを持っていたでしょう。 –
COUTはそれが何であるかです。それは先入れ先出し(FIFO)原理で動作する標準ストリームです。最初に印刷するテキストが最初に印刷され、次にテキストがスクロールアップされ、次の行のスペースが確保されます。画面の指定座標に出力するには、次の文字が配置される位置を変更する必要があります。どのようにするかは、使用しているOSの種類(Linuxでは、それをサポートしていない端末タイプや完全にはサポートしていない端末タイプがあります)を含め、どの端末タイプのコンソールを使用するかによって異なります。ここ
あなたはこれまでに何をしようとしたことがありますが、正確な出力を得るために、同様のループを使用することができ、コード – Mandy8055
を思い付くしてください?。 –
このパターンだけを印刷したいのですが、私の質問はこれが静的になるかどうかです。 –