C++ 运行试验

修改代码和输入,尝试一个小例子。编译和运行发生在你的浏览器中。

首次运行需要下载约 28 MB 编译器资源,之后复用同一个 Worker。 示例使用 GNU C++17;每次编译与运行合计最多 30 秒,可随时停止。

main.cppGNU C++17
#include <algorithm>
#include <iostream>
#include <string>
#include <vector>

int main() {
    std::string name;
    int n;
    if (!(std::cin >> name >> n) || n < 0 || n > 1000) {
        std::cerr << "请输入名字和 0 到 1000 之间的元素个数\n";
        return 1;
    }
    std::vector<int> values(n);
    for (int& value : values) {
        if (!(std::cin >> value)) {
            std::cerr << "输入的整数不够\n";
            return 1;
        }
    }
    std::sort(values.begin(), values.end());
    std::cout << "Hello, " << name << "!\n";
    for (int value : values) std::cout << value << ' ';
    std::cout << '\n';
}

可以试试

  • 修改名字和整数,观察排序后的输出。
  • 删除一个分号,查看带行号的编译诊断。
  • 减少输入中的整数,观察 stderr 和退出码。
  • 将代码改成 int main() { while (true) {} },尝试停止或等待超时。

试验范围

标准输入一次性提供,读完后为 EOF;输出在程序结束后显示。 当前 API 不显示成功编译时的警告。此工具链不支持 C++ 异常, WASM/WASI 与课程的 Linux/GCC 环境也有差异。

工具链可能占用数百 MB 内存,本试验没有硬性内存配额;适合小型教学示例。 平时仍应练习 g++ main.cpp -o main、本地调试和 OJ 提交。

使用 @live-codes/clang-wasm, 第三方许可说明。