強制的setw
に切り捨てる方法はありますか?
出力を取得したいとします。
何とか何とかブリールブ
何とか何とかブリーブリー
これを機能させる方法はありますか:
string foo{"bu blah blah blee le"};
cout << setw(foo.size() - 3) << foo.data() + 3 << setw(foo.size() - 3) << foo << endl;
直接ではありません。
フォーマット指定子ではprintf
、精度引数を使用して、文字列の最大文字数を指定できます。ただし、C++ では、部分文字列演算子を使用します。
std::cout << foo.substr(3) << foo.substr(0, foo.size() - 3) << std::endl;
(もちろん、最初は を使用することもできますfoo.c_str() + 3
。)
No, not really.
You can switch to unformatted output for this example, though:
assert(foo.size() > 3);
cout.write(&foo[3], foo.size() - 3);
cout.write(&foo[0], foo.size() - 3);