Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

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

      From cppreference.com
      <cpp‎ |io‎ |basic istream
       
       
       
       
      int sync();

      Synchronizes the input buffer with the associated data source.

      Behaves asUnformattedInputFunction, except thatgcount() is not affected. After constructing and checking the sentry object,

      Ifrdbuf() is a null pointer, returns-1.

      Otherwise, callsrdbuf()->pubsync(). If that function returns-1, callssetstate(badbit) and returns-1. Otherwise, returns0.

      Contents

      [edit]Parameters

      (none)

      [edit]Return value

      0 on success,-1 on failure or if the stream does not support this operation (is unbuffered).

      [edit]Notes

      As withreadsome(), it is implementation-defined whether this function does anything with library-supplied streams. The intent is typically for the next read operation to pick up any changes that may have been made to the associated input sequence after the stream buffer last filled its get area. To achieve that,sync() may empty the get area, or it may refill it, or it may do nothing. A notable exception is Visual Studio, where this operation discards the unprocessed input when called with a standard input stream.

      [edit]Example

      Demonstrates the use of input streamsync() with file input. Note that output here is implementation-defined, since calls tostd::basic_filebuf::sync are implementation-defined for reads.

      Run this code
      #include <fstream>#include <iostream> void file_abc(){std::ofstream f("test.txt");    f<<"abc\n";} void file_123(){std::ofstream f("test.txt");    f<<"123\n";} int main(){    file_abc();// file now contains "abc"std::ifstream f("test.txt");std::cout<<"Reading from the file\n";char c;    f>> c;std::cout<< c;    file_123();// file now contains "123"    f>> c;std::cout<< c;    f>> c;std::cout<< c<<'\n';    f.close();     file_abc();// file now contains "abc"    f.open("test.txt");std::cout<<"Reading from the file, with sync()\n";    f>> c;std::cout<< c;    file_123();// file now contains "123"    f.sync();    f>> c;std::cout<< c;    f>> c;std::cout<< c<<'\n';}

      Possible output:

      Reading from the fileabcReading from the file, with sync()a23

      [edit]Defect reports

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

      DRApplied toBehavior as publishedCorrect behavior
      LWG 62C++98sync() returnedtraits::eof() ifrdbuf()->pubsync() returns-1returns-1 in this case

      [edit]See also

      [virtual]
      synchronizes the buffers with the associated character sequence
      (virtual protected member function ofstd::basic_streambuf<CharT,Traits>)[edit]
      synchronizes with the underlying storage device
      (public member function ofstd::basic_ostream<CharT,Traits>)[edit]
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/io/basic_istream/sync&oldid=158537"

      [8]ページ先頭

      ©2009-2025 Movatter.jp