Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::ios_base::sync_with_stdio

      From cppreference.com
      <cpp‎ |io‎ |ios base
       
       
       
       
      staticbool sync_with_stdio(bool sync=true);

      Sets whether the standard C++ streams are synchronized to the standard C streams after each input/output operation.

      The standard C++ streams are the following:std::cin,std::cout,std::cerr,std::clog,std::wcin,std::wcout,std::wcerr andstd::wclog.

      The standard C streams are the following:stdin,stdout andstderr.

      For a standard streamstr, synchronized with the C streamf, the following pairs of functions have identical effect:

      1)std::fputc(f, c) andstr.rdbuf()->sputc(c).
      2)std::fgetc(f) andstr.rdbuf()->sbumpc().
      3)std::ungetc(c, f) andstr.rdbuf()->sputbackc(c).

      In practice, this means that the synchronized C++ streams are unbuffered, and each I/O operation on a C++ stream is immediately applied to the corresponding C stream's buffer. This makes it possible to freely mix C++ and C I/O.

      In addition, synchronized C++ streams are guaranteed to be thread-safe (individual characters output from multiple threads may interleave, but no data races occur).

      If the synchronization is turned off, the C++ standard streams are allowed to buffer their I/O independently, which may be considerably faster in some cases.

      By default, all eight standard C++ streams are synchronized with their respective C streams.

      If this function is called after I/O has occurred on the standard stream, the behavior is implementation-defined: implementations range from no effect to destroying the read buffer.

      Contents

      [edit]Parameters

      sync - the new synchronization setting

      [edit]Return value

      Synchronization state before the call to the function.

      [edit]Example

      Run this code
      #include <cstdio>#include <iostream> int main(){    std::ios::sync_with_stdio(false);std::cout<<"a\n";std::printf("b\n");std::cout<<"c\n";}

      Possible output:

      bac

      [edit]Defect reports

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

      DRApplied toBehavior as publishedCorrect behavior
      LWG 49C++98it was unspecified (1) which state is actually returned and
      (2) what does 'synchronized' between standard C and C++ streams mean
      both specified

      [edit]See also

      writes to the standard C output streamstdout
      (global object)[edit]
      writes to the standard C error streamstderr, unbuffered
      (global object)[edit]
      writes to the standard C error streamstderr
      (global object)[edit]
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/io/ios_base/sync_with_stdio&oldid=159121"

      [8]ページ先頭

      ©2009-2025 Movatter.jp