C++ Online - IDE, Editor, Compiler, Interpreter

Kompilasi dan jalankan kode C++20 secara online dengan Clang yang berjalan di browser Anda: container STL, algoritma, iostream, dan input stdin. Tanpa daftar, tidak ada yang di-upload.

C++20 (Clang 21, WebAssembly) · Berjalan di browser Anda, sehingga kode Anda tidak pernah sampai ke server kami.
main.cppC++
Output

            
Input (stdin), dibaca oleh scanf / std::cin / getline
Ctrl/⌘ + Enter untuk menjalankan

Fitur compiler C++ online (IDE, editor & interpreter)

Tulis, jalankan, dan uji kode C++ online secara gratis. Halaman ini berfungsi sebagai IDE, editor kode, compiler, dan interpreter C++ online sekaligus: ketik kode Anda, tekan Jalankan, dan lihat outputnya seketika. Semuanya berjalan di browser Anda, tanpa perlu menginstal apa pun dan tanpa membuat akun.

  • Jalankan kode seketika: C++20 (Clang 21, WebAssembly), dengan output dalam waktu kurang dari satu detik setelah pemuatan pertama.
  • Editor kode: penyorotan sintaks, nomor baris, pencocokan kurung, dan penutupan kurung otomatis.
  • Input program (stdin): ketik input yang dibaca program Anda sebelum menjalankannya.
  • Error yang jelas: pesan error dan peringatan muncul di panel output, seperti di komputer Anda sendiri.
  • Layar penuh: Ctrl/⌘ + Shift + F, ukuran font yang dapat diatur, tata letak berdampingan atau bertumpuk, dan panel yang dapat diubah ukurannya.
  • Simpan otomatis: kode Anda disimpan di browser; download sebagai main.cpp atau salin dengan satu klik.
  • Aman untuk bereksperimen: batas waktu dan tombol Hentikan mengakhiri loop tak terbatas.
  • Privat: runtime C++ berjalan di perangkat Anda, sehingga kode Anda tidak pernah diupload.
  • Mode gelap dan pintasan keyboard: Ctrl/⌘ + Enter menjalankan kode.
  • Gratis: tanpa daftar, tanpa batas penggunaan.

Pelajari bahasa pemrograman lain

Cara memakai compiler C++ online

  1. Ketik atau tempel kode C++ Anda di editor. Kode harus punya int main(). Reset contoh mengembalikan program awal.
  2. Jika program Anda membaca dari std::cin atau std::getline, isi dulu inputnya di kotak Input (stdin).
  3. Tekan Jalankan, atau Ctrl + Enter (⌘ + Enter di Mac). Halaman ini meng-compile main.cpp, menampilkan diagnostik jika ada, lalu menjalankan programnya.
  4. Pilih batas waktu 5, 15, atau 60 detik. Jika eksekusi melewatinya, program dihentikan. Hentikan langsung mengakhirinya.

Pada eksekusi pertama, halaman ini mengunduh toolchain Clang, sekitar 30 MB, yang lalu disimpan di cache browser Anda. Setelah itu, meng-compile program biasa butuh jauh di bawah satu detik. Salin dan main.cpp memungkinkan Anda menyimpan kode, A−/A+ mengubah ukuran teks, tombol tata letak beralih antara panel berdampingan dan bertumpuk, dan Layar penuh (Ctrl/⌘ + Shift + F, Esc untuk keluar) memberi editor seluruh jendela.

Tidak ada yang diunggah. Compiler dan program Anda sama-sama berjalan di browser Anda, dan kode terakhir Anda hanya disimpan di penyimpanan lokal browser Anda.

Apa saja yang didukung

Halaman ini memakai compiler Clang/LLVM 21 asli, yang di-build untuk WebAssembly oleh proyek YoWASP. Compiler mengubah kode sumber Anda menjadi program WebAssembly (WASI) yang dijalankan browser. Perintah yang dijalankan setara dengan:

clang++ main.cpp -std=c++20 -O2 -Wall -fno-exceptions -o main.wasm
  • C++20: auto, lambda, for berbasis range, structured binding, constexpr, concept, dan designated initializer.
  • Standard library dari libc++: vector, string, map, unordered_map, set, algorithm, numeric, iostream, sstream, iomanip, optional, serta container dan algoritma lainnya.
  • Diagnostik bawaan Clang, dicetak persis seperti yang dilaporkan compiler dengan main.cpp:line:column, termasuk error template dan peringatan -Wall.
  • Nilai kembali bukan nol dari main dilaporkan sebagai Proses berakhir dengan kode N.

Mengapa exception dimatikan

Exception C++ membutuhkan dukungan runtime tambahan di WebAssembly yang tidak disediakan toolchain di browser ini, jadi kode di-compile dengan -fno-exceptions. Akibatnya, try, throw, dan catch tidak didukung, dan kode yang memakainya gagal di-compile. Fungsi library yang biasanya melempar exception, seperti std::stoi pada input yang salah atau .at() dengan indeks di luar jangkauan, juga tidak bisa ditangkap di sini. Periksa input sebelum mengonversinya, uji indeks terhadap size(), atau kembalikan std::optional untuk menandakan kegagalan:

#include <optional>
#include <string>

std::optional<int> parse(const std::string& s) {
    if (s.empty()) return std::nullopt;
    int v = 0;
    for (char c : s) {
        if (c < '0' || c > '9') return std::nullopt;
        v = v * 10 + (c - '0');
    }
    return v;
}

Batasan lainnya

  • Tidak ada thread: std::thread, std::async, dan pthreads tidak tersedia.
  • Tidak ada jaringan, tidak ada fork/exec, dan tidak ada sistem file sungguhan, jadi std::ifstream tidak bisa membaca file dari komputer Anda. Gunakan stdin sebagai gantinya.
  • Tidak ada library grafis atau GUI seperti Qt, SFML, atau OpenGL. Output hanya berupa teks.
  • Library pihak ketiga seperti Boost tidak terpasang. Semuanya harus berada dalam satu file main.cpp.

C++ modern dalam beberapa baris

Program awal menunjukkan idiom yang membuat C++ modern lebih ringkas daripada kode buku pelajaran lama:

std::map<std::string, int> ages{ {"Ada", 36}, {"Linus", 54} };
for (const auto& [name, age] : ages)      // structured bindings
    std::cout << name << " is " << age << '\n';

std::vector<int> v{5, 3, 9, 1};
std::sort(v.begin(), v.end(), std::greater<>());
auto evens = std::count_if(v.begin(), v.end(), [](int x) { return x % 2 == 0; });
  • Utamakan '\n' daripada std::endl di dalam loop. endl juga mem-flush stream, sehingga lebih lambat.
  • Saat mencampur std::cin >> n dengan std::getline, panggil std::cin.ignore() lebih dulu; jika tidak, getline membaca sisa baris sebelumnya sebagai string kosong.
  • operator[] pada std::map menyisipkan nilai default jika key-nya tidak ada. Gunakan find atau contains (C++20) untuk mencari key tanpa mengubah map.

Pertanyaan yang sering diajukan

Standar C++ mana yang dipakai?

C++20, di-compile oleh Clang 21 dengan -O2 -Wall. Kode yang ditulis untuk C++11, C++14, atau C++17 juga bisa di-compile.

Mengapa kode saya yang memakai try/catch tidak bisa di-compile?

Exception dinonaktifkan dengan -fno-exceptions. Ganti dengan nilai kembali, std::optional, atau pemeriksaan eksplisit sebelum operasi yang berisiko.

Bisakah saya memakai bits/stdc++.h?

Tidak. Header itu khusus untuk GCC dan tidak ada di libc++. Sertakan header standar yang Anda butuhkan, seperti <iostream>, <vector>, dan <algorithm>.

Apakah ada versi C biasa?

Ada, compiler C online memakai Clang yang sama dalam mode C17. Anda juga bisa menjelajahi semua compiler online di situs ini.

Diperbarui

Tersalin ke clipboard