basic_string_view operator<<

basic_string_view operator<< (한국어 부제)

이 페이지는 std::basic_string_view를 출력 스트림에 삽입하는 operator<< 함수 템플릿에 대해 설명해요. 이 연산자는 문자열 뷰의 내용을 형식화된 출력으로 스트림에 보내요. C++17부터 사용할 수 있어요.

출처: cppreference

본문

정의

<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처럼 동작해요. sentry 객체를 생성하고 확인한 다음, 출력 형식 패딩을 결정해요.

그런 다음 결과 시퀀스 seq(패딩이 포함된 v의 내용)의 각 문자를 출력 스트림 os에 저장해요. 이때 os.rdbuf()->sputn(seq, n)을 호출하는 것처럼 동작하며, 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 properties are kept until changed
    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";

    // width is reset after each call
    std::cout << '[' << s << "]\n";
}

출력:

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

같이 보기

operator<< operator>> 문자열에 대한 스트림 입력과 출력을 수행해요 (함수 템플릿) [edit]

더 알아보기 (Learn more)

cppreference