在线C++编译器

在浏览器中编写、编译并运行 C++ 代码,适合学习、练习与快速验证。

C++ 代码编辑器

输出

标准输出(stdout)

 

标准错误(stderr)

 

使用说明

  • 在左侧编辑器编写 C++ 代码(通常包含 #include <iostream> 等头文件)。
  • 点击“运行代码”即可在线编译并执行程序。
  • 右侧面板展示输出与错误信息。
  • 绿色区域为标准输出(例如 std::cout 输出)。
  • 红色区域为编译/运行错误与警告。
  • 执行信息包含退出码与运行状态。
  • 快捷键:Ctrl+Enter(Mac 上为 Cmd+Enter)。

C++ 基础

基本结构:

#include <iostream>

int main() {
    std::cout << "Hello, C++!" << std::endl;
    return 0;
}

常用头文件:

  • <iostream> - 输入输出流
  • <vector> - 动态数组容器
  • <string> - 字符串
  • <algorithm> - 常用算法(如 std::sort
  • <map>/<unordered_map> - 关联容器

类型与 STL

常见类型:

  • int / long long - 整型
  • float / double - 浮点型
  • char / std::string - 字符与字符串
  • bool - 布尔类型
  • std::vector<T> - 动态数组

示例(容器与算法):

#include <vector>
#include <algorithm>
#include <iostream>

int main() {
    std::vector<int> v = {3, 7, 1, 9, 4};
    std::sort(v.begin(), v.end());
    for (int x : v) std::cout << x << ' ';
    return 0;
}

控制结构

条件与循环:

#include <iostream>

int main() {
    int n = 5;
    if (n % 2 == 0) { std::cout << "even\n"; } else { std::cout << "odd\n"; }
    for (int i = 0; i < n; ++i) { std::cout << i << '\n'; }
    return 0;
}

函数与类

函数与类:

#include <iostream>

int add(int a, int b) { return a + b; }

struct Greeter {
    void say(const std::string& name) const { std::cout << "Hello, " << name << "!\n"; }
};

int main() {
    std::cout << add(2, 3) << '\n';
    Greeter g; g.say("C++");
    return 0;
}

常见问题

支持哪些 C++ 标准?

支持常见的 C++ 标准(如 C++17 / C++20)。多数标准库与常用语法均可使用。

可以使用第三方库吗?

可使用 C++ 标准库。由于运行在沙箱中,第三方系统库/网络访问不可用。

运行是否有时间限制?

有。为避免死循环并保证公平使用,编译/运行都有时间限制,超时会自动终止。

可以保存代码吗?

暂不支持在线保存。建议将重要代码复制到本地,或使用收藏夹/笔记工具保存片段。

为什么会出现编译错误?

常见原因:缺少分号、未包含需要的头文件、语法错误、类型不匹配,或未提供 main 函数等。请根据错误信息逐条修复。

运行时可以交互输入吗?

当前不支持交互式输入(如实时 cin 读取)。如需测试,可将测试数据写死在代码中,或用固定数据替代。

示例程序(点击上方运行)

1. 递归计算阶乘

#include <iostream>

long long fact(int n) { return n <= 1 ? 1 : n * fact(n - 1); }

int main() {
    std::cout << "5! = " << fact(5) << '\n';
    return 0;
}

2. 数组最大值(vector)

#include <iostream>
#include <vector>

int main() {
    std::vector<int> nums = {3, 7, 1, 9, 4};
    int max_val = nums[0];
    for (size_t i = 1; i < nums.size(); ++i) {
      if (nums[i] > max_val) max_val = nums[i];
    }
    std::cout << "Maximum: " << max_val << '\n';
    return 0;
}