这是段刚才想要的回复:
`sync_with_stdio` 是关闭 `iostream` 和 `stdio` 方法的**同步**输入输出(流同步),和 `stdin` 以及 `stdout` 两个流是否有效输入输出没有关系吧。
或者这么说吧。`sync_with_stdio(true)` 的时候,我 `cout` 先输出,输出到 `stdout` 的哪里,还是 `printf` 先输出,输出到 `stdout` 的哪里,是确定的。
而,关了之后,只有 `cout` 内部和 `printf` 内部是同步输出的。假设我混用了 `cout` 的 `printf`,两者的输出顺序和位置是混乱的。`cin`/`scanf` 同理。
而 `freopen` 是将 `stdin` 和 `stdout` 等流重定向到文件。
也就是说,`sync_with_stdio` 改变的是输入输出模式,`freopen` 改变的是输入输出位置。两者并无导致程序错误的关联。
但是,如果你混用了 `cin` 和 `scanf`,那么输出就会混乱。
所以 `sync_with_stdio(false)` 之后,只要只使用 `cin`/`cout` 或者 `scanf`/`printf` 就是没有问题的。可能某些附加文件操作会出现问题,但在 OI 中你关于文件操作基本只需要 `freopen` 就够了。
但是发不出来。到底哪里错误了?QwQ