Cara memakai compiler C++ online
- Ketik atau tempel kode C++ Anda di editor. Kode harus punya
int main(). Reset contoh mengembalikan program awal. - Jika program Anda membaca dari
std::cinataustd::getline, isi dulu inputnya di kotak Input (stdin). - Tekan Jalankan, atau Ctrl + Enter (⌘ + Enter di Mac). Halaman ini meng-compile
main.cpp, menampilkan diagnostik jika ada, lalu menjalankan programnya. - 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,forberbasis 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
maindilaporkan 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, jadistd::ifstreamtidak 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'daripadastd::endldi dalam loop.endljuga mem-flush stream, sehingga lebih lambat. - Saat mencampur
std::cin >> ndenganstd::getline, panggilstd::cin.ignore()lebih dulu; jika tidak,getlinemembaca sisa baris sebelumnya sebagai string kosong. operator[]padastd::mapmenyisipkan nilai default jika key-nya tidak ada. Gunakanfindataucontains(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