table of contents
        
      
      
    | std::ios_base::sync_with_stdio(3) | C++ Standard Libary | std::ios_base::sync_with_stdio(3) | 
NAME¶
std::ios_base::sync_with_stdio - std::ios_base::sync_with_stdio
Synopsis¶
static bool 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 and std::wclog
  
   The standard C streams are the following: stdin, stdout and stderr
  
   For a standard stream str, synchronized with the C stream f, the following
    pairs of
  
   functions have identical effect:
  
   1) std::fputc(f, c) and str.rdbuf()->sputc(c)
  
   2) std::fgetc(f) and str.rdbuf()->sbumpc()
  
   3) std::ungetc(c, f) and str.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.
Parameters¶
sync - the new synchronization setting
Return value¶
synchronization state before the call to the function
Example¶
// Run this code
  
   #include <iostream>
  
   #include <cstdio>
  
   int main()
  
   {
  
   std::ios::sync_with_stdio(false);
  
   std::cout << "a\n";
  
   std::printf("b\n");
  
   std::cout << "c\n";
  
   }
Possible output:¶
 b
  
   a
  
   c
See also¶
 cout writes to the standard C output stream stdout
  
   wcout (global object)
  
   cerr writes to the standard C error stream stderr, unbuffered
  
   wcerr (global object)
  
   clog writes to the standard C error stream stderr
  
   wclog (global object)
| 2022.07.31 | http://cppreference.com |