2

Is there a C++ version of ungetc?

That is, can I put a character back onto an istream?

fredoverflow
  • 256,549
  • 94
  • 388
  • 662

3 Answers3

6

Yes. istream::putback is the same as ungetc except if using unget():

You can't lie with unget(). It "ungets" the last-read character. You can lie with putback(c). You can "putback" some character other than the last-read character. Sometimes putting back a character other than the last-read character can be useful.

Also, if the underlying read buffer really does have buffering capability, you can "putback" more than one character. I think ungetc() is limited to one character.

Community
  • 1
  • 1
2

You can put a character back with the istream::putback function. You can even put a different character if you want.

R. Martinho Fernandes
  • 228,013
  • 71
  • 433
  • 510
0

Yes, http://www.cplusplus.com/reference/iostream/istream/putback/

Prof. Falken
  • 24,226
  • 19
  • 100
  • 173