質問
これはフォーマットに関する単純な質問であると確信していますが、私が達成したいことは次のとおりです。
cout
を使用して画面にデータを出力したい。これを表形式で出力したい。これが意味するのは、列と行が適切に配置されることです。例:
Test 1
Test2 2
Iamlongverylongblah 2
Etc 1
個々の行のみに関心があるため、現在出力する(動作していない)行は
cout << var1 << "\t\t" << var2 << endl;
次のようになります:
Test 1
Test2 2
Iamlongverylongblah 2
Etc 1
解決
setw 。
#include <iostream>
#include <iomanip>
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;
return 0;
}
他のヒント
ブースト形式を使用することをお勧めします。次のようなものを使用します。
cout << format("%|1$30| %2%") % var1 % var2;
最初の列で最も長い文字列の長さを見つける必要があります。次に、フィールドの最初の列の各文字列を、その最長の文字列の長さで出力する必要があります。これは必然的に、すべての文字列を読むまで何も書き込めないことを意味します。
あなたはそれを行うことができます
string str = "somthing";
printf ("%10s",str);
printf ("%10s\n",str);
printf ("%10s",str);
printf ("%10s\n",str);
所属していません StackOverflow