Есть ли версия ungetc на C ++?
То есть я могу вернуть персонажа в поток?
Да. istream :: putback - это то же самое, что ungetc , за исключением использования unget () :
Вы не можете лгать с помощью unget ().Он «отрывает» последнего прочитанного персонажа.Вы можете лгать с задержкой (с).Вы можете «вернуть» некоторый символ, отличный от последнего прочитанного символа.Иногда полезно возвращать символ, отличный от символа последнего чтения. Кроме того, если базовый буфер чтения действительно имеет возможность буферизации, вы можете «отложить» более одного символа.Я думаю, что ungetc () ограничен одним символом.
Вы не можете лгать с помощью unget ().Он «отрывает» последнего прочитанного персонажа.Вы можете лгать с задержкой (с).Вы можете «вернуть» некоторый символ, отличный от последнего прочитанного символа.Иногда полезно возвращать символ, отличный от символа последнего чтения.
Кроме того, если базовый буфер чтения действительно имеет возможность буферизации, вы можете «отложить» более одного символа.Я думаю, что ungetc () ограничен одним символом.
Вы можете вернуть символ обратно с помощью функции istream :: putback .Вы можете даже поставить другого персонажа, если хотите.
Да, http://www.cplusplus.com/reference/iostream/istream/putback/