【C++】关闭cin,cout流同步的注意事项

通过如下语句关闭cincout流同步后,

    ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);

之后的输出就只能使用cout来输出,不能混用C语言的输出函数如printfputs等等,否则输出的顺序会被打乱。
总之:要么全使用C语言风格的输出函数输出,要么全用C++的cout输出。
debug两小时得出的教训。。。

错误案例

    if (n % k) puts("NO");//不能puts与cout混用,要么全用puts,要么全用cout
    else
    {
        dfs(1);
        cout << (res == n / k ? "YES" : "NO") << '\n';
        // if (res == n / k) cout << "YES" << '\n';
        // else cout << "NO" << '\n';
    }

正确写法1

全用C语言风格的输出函数,如puts或者printf,(C语言风格的输出函数可以混用,即puts和printf可以混用,但不能和C++风格的cout混用)

    if (n % k) puts("NO");
    else
    {
        dfs(1);
        if (res == n / k) puts("YES");
        else puts("NO");
    }

或者

    if (n % k) printf("NO\n");
    else
    {
        dfs(1);
        if (res == n / k) puts("YES");
        else puts("NO");
    }

正确写法2

全用cout输出

    if (n % k) cout << "NO" << '\n';
    else
    {
        dfs(1);
        cout << (res == n / k ? "YES" : "NO") << '\n';
    }
posted @   Tshaxz  阅读(13)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
Language: HTML
点击右上角即可分享
微信分享提示