質問
ここの役に立つ回答はを取得した後、私が持っています私はそれがに表示する列に2つの以上の文字列を表示する私が持っている問題の例については、私はこの出力をしたい:ます。
また別の問題に遭遇Come here! where? not here!
が、代わりに取得
Come here! where? not here!
私は、コードを使用する場合
cout << left << setw(30) << "Come here!" << " where? " << setw(20) << "not here!" << endl;
私は両方の列の幅は、2つの文字列を含むことができていること(と思う)を確認しましたが、関係なく、私がする列の幅を設定する方法を大規模、エラーがまだそこにあるんます。
解決
述べたように、
、setw()
は次の入力に適用され、そしてあなたは、2つの入力にそれを適用しようとしている。
あなたのリテラル定数の代わりに変数を使用する機会を与える他の提案に代わるます:
#include <iostream>
#include <sstream>
#include <iomanip>
using namespace std;
int main()
{
stringstream ss;
ss << "Come here!" << " where?";
cout << left << setw(30) << ss.str() << setw(20) << "not here!" << endl;
return 0;
}
他のヒント
setw()
のみ印刷される次の文字列をフォーマットするため、あなたは、代わりに複数の連続した文字列で、1つの文字列として、各列の内容を印刷しなければなりません。だから、例えば使用して、印刷する前に、文字列を連結する必要がありますstring::append()
または+
ます:
cout << left << setw(30) << (string("Come here!") + " where? ") << setw(20) << "not here!" << endl;
あなたがそれらを連結する必要がありますので、
setw
は、次の文字列をカバーしています。
cout << left << setw(30) << (string("Come here!") + string(" where? ")) << setw(20) << "not here!" << endl;
所属していません StackOverflow