std::basic_ostream<CharT,Traits>:: seekp
From cppreference.net
<
cpp
|
io
|
basic ostream
|
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 | - |
상대 오프셋을 적용할 기준 위치를 정의합니다. 다음 상수 중 하나일 수 있습니다:
|
반환값
* this
예외
예제
이 코드 실행
#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)
|