Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

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

      From cppreference.com
      <cpp‎ |io‎ |basic istream
       
       
       
       
      basic_istream& putback( char_type ch);

      Puts the characterch back to the input stream so the next extracted character will bech.

      First clearseofbit, then behaves asUnformattedInputFunction. After constructing and checking the sentry object, ifrdbuf() is not null, callsrdbuf()->sputbackc(ch), which callsrdbuf()->pbackfail(ch) ifch does not equal the most recently extracted character.

      Ifrdbuf() is null or ifrdbuf->sputbackc(ch) returnsTraits::eof(), callssetstate(badbit).

      In any case, sets thegcount() counter to zero.

      Contents

      [edit]Parameters

      ch - character to put into input stream

      [edit]Return value

      *this

      [edit]Exceptions

      [edit]
      failure if an error occurred (the error state flag is notgoodbit) andexceptions() is set to throw for that state.

      If an internal operation throws an exception, it is caught andbadbit is set. Ifexceptions() is set forbadbit, the exception is rethrown.

      [edit]Example

      Demonstrates the difference between modifying and non-modifyingputback().

      Run this code
      #include <iostream>#include <sstream> int main(){std::stringstream s1("Hello, world");// IO stream    s1.get();if(s1.putback('Y'))// modifies the bufferstd::cout<< s1.rdbuf()<<'\n';elsestd::cout<<"putback failed\n"; std::cout<<"--\n"; std::istringstream s2("Hello, world");// input-only stream    s2.get();if(s2.putback('Y'))// cannot modify input-only bufferstd::cout<< s2.rdbuf()<<'\n';elsestd::cout<<"putback failed\n";     s2.clear(); std::cout<<"--\n"; if(s2.putback('H'))// non-modifying putbackstd::cout<< s2.rdbuf()<<'\n';elsestd::cout<<"putback failed\n";}

      Output:

      Yello, world--putback failed--Hello, world

      [edit]Defect reports

      The following behavior-changing defect reports were applied retroactively to previously published C++ standards.

      DRApplied toBehavior as publishedCorrect behavior
      LWG 2243C++98sputbackc() was called without any argumentcalled withch

      [edit]See also

      puts one character back in the input sequence
      (public member function ofstd::basic_streambuf<CharT,Traits>)[edit]
      unextracts a character
      (public member function)[edit]
      reads the next character without extracting it
      (public member function)[edit]
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/io/basic_istream/putback&oldid=178186"

      [8]ページ先頭

      ©2009-2025 Movatter.jp