std:: ws
|
Определено в заголовочном файле
<istream>
|
||
|
template
<
class
CharT,
class
Traits
>
std:: basic_istream < CharT, Traits > & ws ( std:: basic_istream < CharT, Traits > & is ) ; |
||
Отбрасывает ведущие пробельные символы из входного потока.
Ведут себя как UnformattedInputFunction , за исключением того, что is. gcount ( ) не изменяется. После создания и проверки сторожевого объекта извлекает символы из потока и отбрасывает их до тех пор, пока не выполнится любое из следующих условий:
-
условие конца файла возникает во входной последовательности (в этом случае функция вызывает
setstate
(
eofbit
)
но не устанавливает
failbit; это не применяется, еслиeofbitуже установлен в is до вызоваws, в этом случае создание объекта sentry установитfailbit).
- следующий доступный символ c во входной последовательности не является пробельным, как определено std:: isspace ( c, is. getloc ( ) ) . Непробельный символ не извлекается.
Это манипулятор ввода-вывода только для ввода, он может быть вызван выражением вида in >> std :: ws для любого in типа std::basic_istream .
Содержание |
Параметры
| является | - | ссылкой на входной поток |
Возвращаемое значение
is (ссылка на поток после извлечения последовательных пробельных символов).
Примечания
Если
eofbit
установлен в потоке до вызова, конструирование объекта sentry установит
failbit
.
Пример
#include <iomanip> #include <iostream> #include <istream> #include <sstream> #include <string> int main() { for (const char* str : {" #1 test", "\t #2 test", "#3 test"}) { std::string line; std::getline(std::istringstream{str}, line); std::cout << "getline returns:\t" << std::quoted(line) << '\n'; std::istringstream iss{str}; std::getline(iss >> std::ws, line); std::cout << "ws + getline returns:\t" << std::quoted(line) << '\n'; } }
Вывод:
getline returns: " #1 test" ws + getline returns: "#1 test" getline returns: " #2 test" ws + getline returns: "#2 test" getline returns: "#3 test" ws + getline returns: "#3 test"
Отчеты о дефектах
Следующие отчеты об изменениях поведения, влияющие на дефекты, были применены ретроактивно к ранее опубликованным стандартам C++.
| DR | Applied to | Behavior as published | Correct behavior |
|---|---|---|---|
| LWG 415 | C++98 |
calling
std::ws
might not construct the sentry
object (insonsistent with other input functions) |
required to construct
the sentry object |
Смотрите также
|
извлекает и отбрасывает символы до тех пор, пока не будет найден заданный символ
(публичная функция-член
std::basic_istream<CharT,Traits>
)
|