Namespaces
Variants

std::basic_istream<CharT,Traits>:: seekg

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

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

다른 작업을 수행하기 전에, seekg eofbit 를 지웁니다. (C++11부터)

seekg UnformattedInputFunction 처럼 동작하지만, gcount() 는 영향을 받지 않습니다. sentry 객체를 구성하고 검사한 후에,

1) 만약 fail ( ) ! = true 인 경우, 입력 위치 표시자를 파일 시작점을 기준으로 한 절대 값 pos 로 설정합니다. 구체적으로는 rdbuf ( ) - > pubseekpos ( pos, std:: ios_base :: in ) 를 실행합니다( pubseekpos 는 차례로 특정 버퍼의 seekpos(예: basic_filebuf::seekpos , basic_stringbuf::seekpos , 또는 strstreambuf::seekpos )를 호출합니다). 실패할 경우 setstate ( std:: ios_base :: failbit ) 를 호출합니다.
2) 만약 fail ( ) ! = true 인 경우, 입력 위치 표시자를 dir 에 의해 정의된 위치를 기준으로 off 위치로 설정합니다. 구체적으로 rdbuf ( ) - > pubseekoff ( off, dir, std:: ios_base :: in ) 를 실행합니다. 실패할 경우 setstate ( std:: ios_base :: failbit ) 를 호출합니다.

목차

매개변수

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

반환값

* this

예외

failure if an error occurred (the error state flag is not goodbit ) and exceptions() is set to throw for that state.

내부 연산에서 예외가 발생하면, 해당 예외는 포착되고 badbit 이 설정됩니다. 만약 exceptions() 에서 badbit 가 설정되어 있다면, 예외가 재발생됩니다.

참고 사항

seekg(n) 은 반드시 seekg(n, ios::beg) 와 동등하지 않습니다. std:: basic_ifstream 의 경우, 예를 들어 절대 위치 n tellg() 에서 와야 합니다.

예제

#include <iostream>
#include <sstream>
#include <string>
int main()
{
    std::string str = "Hello, world";
    std::istringstream in(str);
    std::string word1, word2;
    in >> word1;
    in.seekg(0); // rewind
    in >> word2;
    std::cout << "word1 = " << word1 << '\n'
              << "word2 = " << word2 << '\n';
}

출력:

word1 = Hello,
word2 = Hello,

결함 보고서

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

DR 적용 대상 게시된 동작 올바른 동작
LWG 129 C++98 실패를 나타낼 방법이 없었음 실패 시 failbit 설정
LWG 136 C++98 seekg 가 출력 스트림을 설정할 수 있었음 입력 스트림만 설정
LWG 537 C++98 off 의 타입이 off_type& 였음 off_type 로 수정됨

참고 항목

입력 위치 표시자를 반환합니다
(public member function)
출력 위치 표시자를 반환합니다
( std::basic_ostream<CharT,Traits> 의 public member function)
출력 위치 표시자를 설정합니다
( std::basic_ostream<CharT,Traits> 의 public member function)
seekpos ( ) 를 호출합니다
( std::basic_streambuf<CharT,Traits> 의 public member function)
[virtual]
절대 주소 지정을 사용하여 파일 위치를 재배치합니다
( std::basic_filebuf<CharT,Traits> 의 virtual protected member function)
[virtual]
절대 주소 지정을 사용하여 입력 시퀀스, 출력 시퀀스 또는 둘 모두의 다음 포인터를 재배치합니다
( std::basic_stringbuf<CharT,Traits,Allocator> 의 virtual protected member function)
[virtual]
절대 주소 지정을 사용하여 입력 시퀀스, 출력 시퀀스 또는 둘 모두의 다음 포인터를 재배치합니다
( std::strstreambuf 의 virtual protected member function)
seekoff ( ) 를 호출합니다
( std::basic_streambuf<CharT,Traits> 의 public member function)
[virtual]
상대 주소 지정을 사용하여 파일 위치를 재배치합니다
( std::basic_filebuf<CharT,Traits> 의 virtual protected member function)
[virtual]
상대 주소 지정을 사용하여 입력 시퀀스, 출력 시퀀스 또는 둘 모두의 다음 포인터를 재배치합니다
( std::basic_stringbuf<CharT,Traits,Allocator> 의 virtual protected member function)
[virtual]
상대 주소 지정을 사용하여 입력 시퀀스, 출력 시퀀스 또는 둘 모두의 다음 포인터를 재배치합니다
( std::strstreambuf 의 virtual protected member function)