Spec-Zone.ru › C++

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

basic_istream& unget();

Возвращает последний извлеченный символ для повторного использования.

Сначала очищает eofbit. Затем,(с C++11) unget ведет себя как UnformattedInputFunction. После создания и проверки объекта сторожа, если установлены какие-либо ios_base::iostate флаги, функция устанавливает failbit и возвращается. В противном случае вызывается rdbuf()->sungetc().

Если rdbuf()->sungetc() возвращает Traits::eof(), вызывается setstate(badbit).

В любом случае, счетчик gcount() устанавливается в ноль.

Параметры

(нет)

Возвращаемое значение

*this

Исключения

failure если произошла ошибка (флаг состояния ошибки не goodbit) и exceptions() установлено для выбрасывания исключения для этого состояния.

Если внутренняя операция вызывает исключение, оно перехватывается, и badbit устанавливается. Если exceptions() установлено для badbit, исключение перебрасывается повторно.

Пример

#include <iostream>
#include <sstream>
 
int main()
{
    std::istringstream s1("Hello, world.");
    char c1 = s1.get();
    if (s1.unget())
    {
        char c2 = s1.get();
        std::cout << "Got: '" << c1 << "'. Got again: '" << c2 << "'.\n";
    }
}

Вывод:

Got: 'H'. Got again: 'H'.

См. также

sungetc
перемещает указатель следующего элемента в последовательности ввода на одну позицию назад
(публичный член-функция std::basic_streambuf<CharT,Traits>)
get
извлекает символы
(публичный член-функция)
peek
считывает следующий символ без его извлечения
(публичный член-функция)
putback
помещает символ в поток ввода
(публичный член-функция)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/io/basic_istream/unget

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API