2017-08-12 4 views
1

の下に出力されます: のstd :: coutのは、複数のテキストながら、出力はこのことをあるべきで、私はプロジェクトに取り組んできました

oo 
    oo 
    oo 
############### 

は、だから私は地面をしたい(##### ... ) 'o'の前に出力するが、std :: coutを使うと、上から下に行くので、これはうまくいかないようだ。これを解決するために使用できる方法はありますか、あるいは別の出力方法かもしれませんか?

+0

あなたはこれまでに何をしようとしたことがありますが、正確な出力を得るために、同様のループを使用することができ、コード – Mandy8055

+0

を思い付くしてください?。 –

+0

このパターンだけを印刷したいのですが、私の質問はこれが静的になるかどうかです。 –

答えて

1

これ以上の調査が行われると、それは実行できますが、オペレーティングシステム固有のものです。私が見つけた 例は次のとおりです。

#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; 
} 
+0

これはどのようにオペレーティングシステム固有のものですか? –

+0

@ Kashif Faraz Shamsi OSはコンソールとは異なる動作をするためです。 Linuxコンソールの場合は、本当のネイティブモードの出力、WindowsやMacOSの場合はGUIになります。コンソールがエミュレートされています。しかし、Xサーバの下のLinuxでは、エミュレートされたコンソールにいるかもしれません。これはネイティブのものと全く同じではありません。 – Swift

+0

コンソールハンドルを再利用するために保存することができることを示す方が良いでしょう。毎回getStdHandleを呼び出すことはおそらく最良の方法ではありません。 – Swift

-1

さて、あなたは印刷しているあなたの文章の前に、あなたのコードに以下のコードを追加することができます。

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; 
} 

出力: enter image description here

+0

OPは何を求めていたのではなく、彼はテキストモードでの出力方法を調整する必要があります。 – Swift

+0

はい、今すぐ手に入れました。私の悪い。コードが以前に投稿された場​​合、私はそれを持っていたでしょう。 –

0

COUTはそれが何であるかです。それは先入れ先出し(FIFO)原理で動作する標準ストリームです。最初に印刷するテキストが最初に印刷され、次にテキストがスクロールアップされ、次の行のスペースが確保されます。画面の指定座標に出力するには、次の文字が配置される位置を変更する必要があります。どのようにするかは、使用しているOSの種類(Linuxでは、それをサポートしていない端末タイプや完全にはサポートしていない端末タイプがあります)を含め、どの端末タイプのコンソールを使用するかによって異なります。ここ

チェックの答え:Linux drawing in text mode(no gui, desktop)

関連する問題