operator>> (std::basic_istream)
|
헤더 파일에 정의됨
<istream>
|
||
|
template
<
class
CharT,
class
Traits
>
basic_istream
<
CharT, Traits
>
&
|
(1) | |
| (2) | ||
|
template
<
class
CharT,
class
Traits
>
basic_istream
<
CharT, Traits
>
&
|
(C++20 이전) | |
|
template
<
class
CharT,
class
Traits,
std::
size_t
N
>
basic_istream
<
CharT, Traits
>
&
|
(C++20 이후) | |
|
template
<
class
Istream,
class
T
>
Istream
&&
|
(3) | (C++11부터) |
ch
에 저장합니다. 사용 가능한 문자가 없는 경우,
failbit
을 설정합니다(
FormattedInputFunction
의 요구사항에 따라 설정되는
eofbit
에 추가하여).
s
가 가리키는 문자 배열의 연속된 위치에 저장합니다. 다음 조건 중 하나가 충족되면 추출이 중단됩니다:
- ( ctype<CharT> 패싯에 의해 결정된) 공백 문자가 발견된 경우. 공백 문자는 추출되지 않습니다.
|
(C++20까지) |
|
(C++20부터) |
- 입력 시퀀스에서 파일 끝(EOF)이 발생한 경우 (이 경우 eofbit 도 설정됩니다).
Istream
이
std::ios_base
로부터 공개적이고 명확하게 파생된 클래스 타입인 경우에만 오버로드 해결에 참여합니다.
목차 |
참고 사항
스트림의 마지막 문자인 단일 문자를 추출하는 것은
eofbit
를 설정하지 않습니다: 이는
operator
>>
를 사용하여 마지막 정수를 추출하는 것과 같은 다른 형식화된 입력 함수들과는 다르지만, 이 동작은
"%c"
형식 지정자를 사용한
std::scanf
의 동작과 일치합니다.
매개변수
| st | - | 데이터를 추출할 입력 스트림 |
| ch | - | 추출된 문자를 저장할 문자에 대한 참조 |
| s | - | 포인터 (C++20 이전) 추출된 문자들을 저장할 문자 배열 |
반환값
예제
#include <iomanip> #include <iostream> #include <sstream> int main() { std::string input = "n greetings"; std::istringstream stream(input); char c; const int MAX = 6; char cstr[MAX]; stream >> c >> std::setw(MAX) >> cstr; std::cout << "c = " << c << '\n' << "cstr = " << cstr << '\n'; double f; std::istringstream("1.23") >> f; // rvalue stream extraction std::cout << "f = " << f << '\n'; }
출력:
c = n cstr = greet f = 1.23
결함 보고서
다음의 동작 변경 결함 보고서들은 이전에 발표된 C++ 표준에 소급 적용되었습니다.
| DR | 적용 대상 | 게시된 동작 | 수정된 동작 |
|---|---|---|---|
| LWG 13 | C++98 | n 정의에 존재하지 않는 이름 eos 가 언급됨 | CharT ( ) 로 대체됨 |
| LWG 68 | C++98 | 오버로드 (2)에 대해 출력 끝에 널 문자가 저장되지 않음 | 널 문자를 저장함 |
| LWG 1203 | C++98 | rvalue 스트림에 대한 오버로드가 기본 클래스에 대한 lvalue 참조를 반환함 |
파생 클래스에 대한 rvalue 참조를 반환함
|
| LWG 2328 | C++98 | rvalue 스트림에 대한 오버로드가 다른 인수를 lvalue로 요구함 | rvalue를 허용하도록 수정됨 |
| LWG 2534 | C++98 | rvalue 스트림에 대한 오버로드가 제약되지 않음 | 제약됨 |
참고 항목
|
형식화된 데이터를 추출합니다
(public member function) |