在不使用 ios::sync_with_stdio(false)
时,cin
/cout
的所有操作必须和 C <stdio.h>
提供的输入输出操作进行同步,在输入输出规模较大时可能导致超时。
在使用 ios::sync_with_stdio(false)
时,混用 cin
和 scanf
或混用 cout
和 printf
(或 puts
等其他输出函数) 可能会导致输入被重复读取,或输出乱序。
int main()
{
cin.tie(0);
int a, b;
while (cin >> a >> b)
cout << a + b << '\n';
return 0;
}
这个 a+b
程序在数据组数很多时,由于每次使用 cin
/cout
都需要和 <stdio.h>
的相关机制进行同步,可能超时。
使用文本编辑器,在程序中查找 ios::sync_with_stdio
,以及 <stdio.h>
提供的函数。
只要使用了 cin
/cout
,就使用 ios::sync_with_stdio(false)
,并且停用 <stdio.h>
提供的 I/O 功能。