DarkKris

There is DarkKris‘s Blog , Welcome .

关于std::ios::sync_with_stdio(false);

std::ios::sync_with_stdio(false);

这句语句是用来取消cin的同步,什么叫同步呢?就是iostream的缓冲跟stdio的同步。如果你已经在头文件上用了using namespace std;那么就可以去掉前面的std::了。取消后就cin就不能和scanf,sscanf, getchar, fgets之类同时用了,否则就可能会导致输出和预期的不一样。

#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
    cout.sync_with_stdio(false);
    cout << "a\n";
    printf("b\n");
    cout << "c\n";
}
输出结果是
b
a
c

取消同步的目的,是为了让cin不超时,另外cout的时候尽量少用endl,换用”\n”,也是防止超时的方法。

当然,尽量用scanf,printf就不用考虑这种因为缓冲的超时了。

转自@flipped的博客

阅读更多
文章标签: C++
个人分类: OI算法记录介绍
上一篇NOIp2012TG/Luogu P1082 同余方程 解题报告
下一篇NOIp2015TG/Luogu P2661 信息传递 解题报告
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭