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
(в дополнение к
eofbit
, который устанавливается согласно требованиям для
FormattedInputFunction
).
s
. Извлечение прекращается при выполнении любого из следующих условий:
- Найден пробельный символ (определяемый фасетом ctype<CharT> ). Пробельный символ не извлекается.
|
(до C++20) |
|
(начиная с C++20) |
- В входной последовательности встречается конец файла (это также устанавливает eofbit ).
Istream
является типом класса, публично и однозначно унаследованным от
std::ios_base
.
Содержание |
Примечания
Извлечение одного символа, который является последним символом потока, не устанавливает
eofbit
: это отличается от других функций форматированного ввода, таких как извлечение последнего целого числа с помощью
operator
>>
, но это поведение соответствует поведению
std::scanf
с
"%c"
спецификатором формата.
Параметры
| 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) |