Is there a way that I can force setw
to truncate?
Say that I want to get the output:
blah blah blee le
bu blah blah blee
Is there a way to make this work:
string foo{"bu blah blah blee le"};
cout << setw(foo.size() - 3) << foo.data() + 3 << setw(foo.size() - 3) << foo << endl;
No, not really.
You can switch to unformatted output for this example, though:
Not directly.
In the
printf
format specifiers, the precision argument could be used to specify the maximum number of characters from a string. In C++, however, you use the substring operator:(Of course, for the first, you could also use
foo.c_str() + 3
.)