You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Visual Studio环境下C++算法竞赛如何实现输入输出分离

C++ 算法竞赛输入输出分离实现方案

以下提供两种适配竞赛场景的实现方案,你可以根据自己的使用习惯选择:

方案1:文件读写分离(竞赛场景最常用)

这种方式不需要改原有算法逻辑,提交到OJ时仅需要注释2行代码即可:

  1. 在代码同级目录新建in.txt,提前写入所有测试用例输入
  2. 代码开头加入重定向语句,运行后输出会自动写入同目录的out.txt
  3. 直接打开两个文件就能分别查看输入、输出内容,完全隔离互不干扰

示例代码:

#include <iostream>
using namespace std;

int main() {
    // 本地调试时开启,提交到OJ前注释掉下方两行即可
    freopen("in.txt", "r", stdin);
    freopen("out.txt", "w", stdout);

    // 原有算法代码不需要任何修改,cin/cout/scanf/printf都正常使用
    int a, b;
    cin >> a >> b;
    cout << a + b << endl;

    return 0;
}

方案2:控制台显示分离

如果需要在控制台内直接区分输入输出,可以先读完所有输入内容存储到变量中,全部输入完成后再统一打印所有输出,这样控制台前半段都是输入内容,后半段都是输出内容,不会出现穿插混杂的情况。
示例代码:

#include <iostream>
#include <vector>
using namespace std;

int main() {
    // 先读取所有输入,存到对应变量
    int n;
    cin >> n;
    vector<int> arr(n);
    for (int i = 0; i < n; i++) {
        cin >> arr[i];
    }

    // 所有输入读取完成后,再统一输出结果
    cout << "===== 输出结果 =====" << endl;
    for (int num : arr) {
        cout << num * 2 << endl;
    }
    return 0;
}
  • 如果你需要边输入边输出还能区分,可以给输出加统一前缀,比如所有输出前都加[输出]标记,和输入内容做区分
  • 若使用C++文件流实现读写,逻辑和重定向方式一致,仅写法不同,竞赛场景更推荐freopen写法,代码更简洁

内容的提问来源于stack exchange,提问作者Ahmed Magdy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 21:45:01