static bool sync_with_stdio( bool sync = true );
设置标准 C++ 流是否与标准 C 流在每次输入/输出操作后同步。
遇到cin TLE时可以用于取消cin同步, 取消之后不能和 scanf,sscanf, getchar, fgets 之类同用。
测试
#include <iostream>
#include <cstdio>
int main() {
std::ios::sync_with_stdio(false);
std::cout << "a\n";
std::printf("b\n");
std::cout << "c\n";
}
输出 (环境 g++5.4.0)
b
c
a
默认的情况下cin绑定的是cout,每次执行 « 操作符的时候都要调用flush,这样会增加IO负担。
std::ios::sync_with_stdio(false);
std::cin.tie(0);
参考一 : http://zh.cppreference.com/w/cpp/io/ios_base/sync_with_stdio
参考二 :http://www.hankcs.com/program/cpp/cin-tie-with-sync_with_stdio-acceleration-input-and-output.html