在线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;
}
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 <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;
}
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;
}
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;
}
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;
}
#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;
}