operator<<(std::basic_string_view)

出自cppreference.com


 
 
 
 
在標頭 <string_view> 定義
template< class CharT, class Traits >
std::basic_ostream<CharT, Traits>&
    operator<<( std::basic_ostream<CharT, Traits>& os, 
                std::basic_string_view<CharT, Traits> v );
(C++17 起)

表現為有格式輸出函數 (FormattedOutputFunction) 。構造並檢查哨兵對象後,確定輸出格式填充

然後如同通過調用 os.rdbuf()->sputn(seq, n),將來自結果序列 seqv 的內容加上填充)的每個字符存儲到輸出流 os,其中 nstd::max(os.width(), str.size())

最後,調用 os.width(0) 以取消 std::setw 的效果,如果存在。

異常

如果輸出時拋出異常,那麼可能會拋出 std::ios_base::failure

參數

os - 字符輸出流
v - 要插入的視圖

返回值

os

示例

#include <iomanip>
#include <iostream>
#include <string_view>

int main()
{
    constexpr std::string_view s{"abc"};
    constexpr int width{5};

    // fill/left/right 属性保留不变直至被修改
    std::cout << std::setfill('-');
    std::cout << std::left;

    std::cout << '[' << std::setw(width) << s << "]\n";
    std::cout << '[' << std::setw(width) << s << "]\n";

    std::cout << std::right;
    std::cout << '[' << std::setw(width) << s << "]\n";

    // 每次调用后重置宽度
    std::cout << '[' << s << "]\n";
}

輸出:

[abc--]
[abc--]
[--abc]
[abc]

參閱

���行字符串的流輸入與輸出
(函數模板) [編輯]