operator<<(std::basic_string_view)
From cppreference.com
< cpp | string | basic string view
Defined in header <string_view>
|
||
template< class CharT, class Traits > std::basic_ostream<CharT, Traits>& |
(since C++17) | |
Behaves as a FormattedOutputFunction. After constructing and checking the sentry object, determines the output format padding as follows:
- a) If v.size() is not less than os.width(), uses the range [v.begin(), v.end()) as-is
- b) Otherwise, if (os.flags() & ios_base::adjustfield) == ios_base::left, places os.width()-v.size() copies of the os.fill() character after the character sequence
- c) Otherwise, places os.width()-v.size() copies of the os.fill() character before the character sequence
Then stores each character from the resulting sequence (the contents of v
plus padding) to the output stream os
as if by calling os.rdbuf()->sputn(seq, n), where n=std::max(os.width(), str.size())
Finally, calls os.width(0) to cancel the effects of std::setw, if any.
Exceptions
May throw std::ios_base::failure if an exception is thrown during output.
Parameters
os | - | a character output stream |
v | - | the view to be inserted |
Return value
os
Example
Run this code
#include <iomanip> #include <iostream> #include <string_view> int main() { constexpr std::string_view s{"abc"}; constexpr int width{5}; constexpr char fill{'-'}; std::cout << std::setfill(fill) << "[" << s << "]\n" << "[" << std::left << std::setw(width) << s << "]\n" << "[" << std::right << std::setw(width) << s << "]\n"; }
Output:
[abc] [abc--] [--abc]
See also
performs stream input and output on strings (function template) |