Namespaces
Variants

std::basic_ostream<CharT,Traits>:: seekp

From cppreference.net
basic_ostream & seekp ( pos_type pos ) ;
(1)
basic_ostream & seekp ( off_type off, std:: ios_base :: seekdir dir ) ;
(2)

현재 연결된 streambuf 객체의 출력 위치 표시자를 설정합니다.

UnformattedOutputFunction 처럼 동작합니다(실제 출력을 수행하지 않는다는 점을 제외하고). sentry 객체를 구성하고 검사한 후,

(since C++11)
1) 만약 fail ( ) ! = true 인 경우, 출력 위치 표시자를 파일 시작을 기준으로 한 절대 값 pos 로 설정합니다. 이는 rdbuf ( ) - > pubseekpos ( pos, std:: ios_base :: out ) 를 호출하여 수행됩니다. 실패할 경우 setstate ( std:: ios_base :: failbit ) 를 호출합니다.
2) 만약 fail ( ) ! = true 인 경우, 출력 위치 표시자를 dir 기준으로 off 만큼의 오프셋으로 설정하기 위해 rdbuf ( ) - > pubseekoff ( off, dir, std:: ios_base :: out ) 를 호출합니다. 실패할 경우 setstate ( std:: ios_base :: failbit ) 를 호출합니다.

목차

매개변수

pos - 출력 위치 표시자를 설정할 절대 위치
off - 출력 위치 표시자를 설정할 상대 위치 (양수 또는 음수)
dir - 상대 오프셋을 적용할 기준 위치를 정의합니다. 다음 상수 중 하나일 수 있습니다:
상수 설명
beg 스트림의 시작
end 스트림의 끝
cur 스트림 위치 표시자의 현재 위치

반환값

* this

예외

1,2) 실패 시 std::ios_base::failure 를 발생시킬 수 있으며, 이는 exceptions ( ) & failbit ! = 0 인 경우에 해당합니다.

예제

#include <iostream>
#include <sstream>
int main()
{
    std::ostringstream os("hello, world");
    os.seekp(7);
    os << 'W';
    os.seekp(0, std::ios_base::end);
    os << '!';
    os.seekp(0);
    os << 'H';
    std::cout << os.str() << '\n';
}

출력:

Hello, World!

결함 보고서

다음의 동작 변경 결함 보고서들은 이전에 발표된 C++ 표준에 소급 적용되었습니다.

DR 적용 대상 게시된 동작 올바른 동작
LWG 129 C++98 실패를 나타낼 방법이 없었음 실패 시 failbit 설정
LWG 136 C++98 seekp 가 입력 스트림을 설정할 수 있었음 출력 스트림만 설정
LWG 537 C++98 1. pos 의 타입이 pos_type&
2. off 의 타입이 off_type&
1. pos_type 으로 수정
2. off_type 으로 수정
LWG 2341 C++98 오버로드 (2)에 대한 LWG 이슈 129 의 해결안이 제거됨 복원됨

참고 항목

출력 위치 표시자를 반환합니다
(public member function)
입력 위치 표시자를 반환합니다
( std::basic_istream<CharT,Traits> 의 public member function)
입력 위치 표시자를 설정합니다
( std::basic_istream<CharT,Traits> 의 public member function)