29


6

私はこれがフォーマットに関して単純な質問であると確信していますが、ここに私が達成したいものがあります:

coutを使って画面にデータを出力したい。 これを表形式で出力したい。 これが意味するのは、列と行が正しく揃っていることです。 例:

テスト1テスト2 2 Iamlongverylongblah 2など1

私は個々の行にのみ関心があるので、今出力する(動作していない)行は

cout << var1 << "\ t \ t" << var2 << endl;

これは私に何かを与えます:

テスト1テスト2 2 Iamlongverylongblah 2など1

4 Answer


50


http://www.cplusplus.com/reference/iomanip/setw/[setw]。
#include #include using namespace std;

int main(){cout << setw(21)<< left << "Test" << 1 << endl; cout << setw(21)<< left << "Test2" << 2 << endl; cout << setw(21)<< left << "Iamlongverylongblah" << 2 << endl; cout << setw(21)<< left << "Etc" << 1 << endl; 0を返します。 }


10


http://www.boost.org/doc/libs/1_37_0/libs/format/index.html[Boost Format]を使用することをお勧めします。 このようなものを使う:
cout << format( "%| 1 $ 30 |%2%")%var1%var2;


2


最初の列に最も長い文字列の長さを見つける必要があります。 次に、フィールドの最初の列に各文字列を出力する必要があります。長さはその最も長い文字列の長さです。 これは必然的にあなたが一人ひとり文字列を読むまで何も書くことができないことを意味します。


0


あなたはそれをすることができます

文字列str = "何か"; printf( "%10s"、str); printf( "%10s \ n"、str); printf( "%10s"、str); printf( "%10s \ n"、str);