返回 工具

C++ 在线编译器

我的工具
暂无工具

首次运行需要下载约 {size} MB 的编译器,之后会缓存复用。

如何在线编译运行 C++ 代码

  1. 1

    粘贴代码或选择示例

    在编辑器中写入 C++ 代码,或先从预设示例中选择 Hello World、STL 容器、异常处理等,快速开始。

  2. 2

    选择 C++ 标准

    运行前在工具栏选择 C++11 到 C++23,用于验证不同标准下的语法与标准库行为,例如 std::format 需要 C++20。

  3. 3

    点击运行并查看结果

    首次运行需要在浏览器内下载约 29 MB 的 Clang 编译器,之后会缓存复用。运行结果、编译输出与错误信息分三个标签查看。

  4. 4

    需要输入时直接在输出区敲

    程序执行到 std::cin 时会停下来等待,输入位就出现在输出内容下方,输入后按 Enter 继续。

  5. 5

    复制结果或分享代码

    可复制代码与运行结果,从本地历史记录恢复此前的版本,或生成带代码的分享链接发给他人。

功能概览

C++ 在线编译器,用真正的 Clang 在浏览器里编译并运行 C++ 代码,无需安装 GCC、MSVC 或任何 IDE。支持 C++11 到 C++23 标准切换,适合验证语法、刷算法题和教学演示。

工具描述

C++ 在线编译器:用真正的 Clang 在浏览器里编译并运行 C++ 代码,无需安装 GCC、MSVC 或任何 IDE。支持 C++11、C++14、C++17、C++20、C++23 标准切换,完整的 STL、异常处理(try/catch)、智能指针、std::format 与 ranges 都能用,std::cin 可交互输入。编译输出、运行结果与错误信息分三个标签查看,并提供本地历史记录与代码分享链接。编译和执行全部在浏览器本地完成,代码不上传服务器,也不排队等后端。

最近更新

能力清单

  • 在 C++11、C++14、C++17、C++20、C++23 之间切换,用同一段代码对照不同标准下的行为。
  • 完整的标准库:STL 容器与算法、智能指针、std::string、iostream、fstream、chrono、random 都能直接用。
  • 异常处理可用:try/catch、throw、std::stoi 与 vector::at 抛出的标准异常都能正常捕获。
  • C++20 的 std::format 与 ranges、C++23 的新特性都已验证可用。
  • std::cin 支持交互式输入,程序停下来等你输入时可以直接在输出区继续敲。
  • 编译输出、运行结果与错误信息分三个标签查看,Clang 的诊断保留原始格式,带行列指示与修复建议。
  • 编译与执行全部在浏览器本地完成,代码不上传服务器,也不排队等后端。
  • 本地历史记录与代码分享链接,换台设备也能打开同一段代码。

用户反馈

提交的内容将在审核(必要时会做脱敏处理)后公开展示;请勿在内容中填写邮箱、密码等个人信息。

您的反馈将帮助我们做得更好 ❤️

相关工具

相关指南

常见问题

这个工具用什么方式在浏览器里编译运行 C++?
编译器是编译成 WebAssembly 的 Clang 与 LLD,配合 WASI 标准库在浏览器里运行。你的代码会被真正编译成 WebAssembly 二进制再执行,不是解释器也不是语法子集,所以标准库行为与本地编译一致。
这个工具支持哪些 C++ 标准
支持 C++11、C++14、C++17、C++20 和 C++23,在工具栏直接切换。C++20 的 std::format 与 ranges、C++23 的新特性都已实测可用。
异常处理与标准库的支持范围
try/catch、throw 与标准库抛出的异常都能正常工作,包括 std::stoi 的 invalid_argument 与 vector::at 的 out_of_range。STL 容器与算法、智能指针、iostream、fstream、chrono、random 均可直接使用。
这个工具当前不支持的能力
不支持多线程:std::thread、std::async 与 pthread 都用不了,因为 WASI 运行时没有线程支持。也不支持网络请求、调用系统命令,以及需要操作系统特定 API 的代码。
首次运行的等待时间与后续运行速度
首次运行要下载约 29 MB 的编译器,宽带下约 5 秒,4G 下约 10 到 35 秒。之后编译器会被浏览器缓存,再次运行只剩编译本身的耗时,通常在 1 到 3 秒。
代码与历史记录保存在什么位置
代码在浏览器本地编译和执行,不会上传到服务器。历史记录保存在浏览器的本地存储里,只有你自己能看到,清除浏览器数据会一并清除。