Online C++ - IDE, Editör, Derleyici, Yorumlayıcı

C++20 kodunu tarayıcınızda çalışan Clang ile online derleyip çalıştırın: STL kapsayıcıları, algoritmalar, iostream ve stdin girişi. Kayıt gerekmez, hiçbir şey yüklenmez.

C++20 (Clang 21, WebAssembly) · Tarayıcınızda çalışır, böylece kodunuz sunucularımıza hiç ulaşmaz.
main.cppC++
Çıktı

            
Girdi (stdin), scanf / std::cin / getline ile okunur
Çalıştırmak için Ctrl/⌘ + Enter

Online C++ derleyicinin özellikleri (IDE, editör & yorumlayıcı)

C++ kodunu online ve ücretsiz olarak yazın, çalıştırın ve test edin. Bu sayfa online C++ IDE'si, kod editörü, derleyicisi ve yorumlayıcısı olarak tek bir yerde çalışır: kodunuzu yazın, Çalıştır'a basın ve çıktıyı hemen görün. Her şey tarayıcınızda çalışır; kurulacak bir şey ya da açılacak bir hesap yoktur.

  • Kodu anında çalıştırın: C++20 (Clang 21, WebAssembly), ilk yüklemeden sonra bir saniyeden kısa sürede çıktı.
  • Kod editörü: sözdizimi vurgulama, satır numaraları, parantez eşleştirme ve otomatik parantez kapatma.
  • Program girdisi (stdin): programınızın okuyacağı girdiyi çalıştırmadan önce yazın.
  • Anlaşılır hatalar: hata mesajları ve uyarılar, kendi bilgisayarınızda olduğu gibi çıktı panelinde görünür.
  • Tam ekran: Ctrl/⌘ + Shift + F, ayarlanabilir yazı boyutu, yan yana veya alt alta düzen ve yeniden boyutlandırılabilir paneller.
  • Otomatik kaydetme: kodunuz tarayıcınızda saklanır; tek tıkla main.cpp olarak indirin veya kopyalayın.
  • Güvenle deneyin: süre sınırı ve Durdur düğmesi sonsuz döngüleri sonlandırır.
  • Gizli: C++ çalışma ortamı cihazınızda çalışır, böylece kodunuz asla yüklenmez.
  • Karanlık mod ve klavye kısayolları: Ctrl/⌘ + Enter kodu çalıştırır.
  • Ücretsiz: kayıt yok, kullanım sınırı yok.

Diğer programlama dillerini öğrenin

Online C++ derleyici nasıl kullanılır?

  1. C++ kodunuzu düzenleyiciye yazın veya yapıştırın. Kodda bir int main() bulunmalıdır. Örneği sıfırla başlangıç programını geri getirir.
  2. Programınız std::cin veya std::getline ile girdi okuyorsa girdiyi önce Girdi (stdin) kutusuna yazın.
  3. Çalıştır düğmesine ya da Ctrl + Enter (Mac'te ⌘ + Enter) tuşlarına basın. Sayfa main.cpp dosyasını derler, varsa tanılama mesajlarını gösterir ve ardından programı çalıştırır.
  4. 5, 15 veya 60 saniyelik bir süre sınırı seçin. Çalışma bu süreyi aşarsa program durdurulur. Durdur programı hemen sonlandırır.

İlk çalıştırmada sayfa, yaklaşık 30 MB boyutundaki Clang araç zincirini indirir ve tarayıcınız bunu önbelleğe alır. Bundan sonra tipik bir programı derlemek bir saniyeden çok daha kısa sürer. Kopyala ve main.cpp kodunuzu saklamanızı sağlar, A−/A+ metin boyutunu değiştirir, düzen düğmesi yan yana ve alt alta paneller arasında geçiş yapar, Tam ekran (Ctrl/⌘ + Shift + F, çıkmak için Esc) ise düzenleyiciye tüm pencereyi verir.

Hiçbir şey yüklenmez. Derleyici de programınız da tarayıcınızda çalışır ve en son kodunuz yalnızca tarayıcınızın yerel depolama alanına kaydedilir.

Neler destekleniyor?

Sayfa, YoWASP projesi tarafından WebAssembly için derlenmiş gerçek bir Clang/LLVM 21 derleyicisi kullanır. Kaynak kodunuzu tarayıcının çalıştırdığı bir WebAssembly (WASI) programına derler. Çalıştırdığı komut şuna eşdeğerdir:

clang++ main.cpp -std=c++20 -O2 -Wall -fno-exceptions -o main.wasm
  • C++20: auto, lambda'lar, aralık tabanlı for, yapısal bağlamalar (structured bindings), constexpr, concept'ler ve belirlenmiş başlatıcılar (designated initializers).
  • libc++'tan standart kütüphane: vector, string, map, unordered_map, set, algorithm, numeric, iostream, sstream, iomanip, optional ile diğer kapsayıcılar ve algoritmalar.
  • Clang'in kendi tanılama mesajları; şablon hataları ve -Wall uyarıları dahil, derleyicinin bildirdiği şekliyle main.cpp:satır:sütun biçiminde aynen yazdırılır.
  • main işlevinin sıfırdan farklı bir değer döndürmesi İşlem N koduyla sonlandı olarak bildirilir.

İstisnalar neden kapalı?

C++ istisnaları WebAssembly'de, tarayıcıda çalışan bu araç zincirinin sağlamadığı ek çalışma zamanı desteği gerektirir; bu yüzden kod -fno-exceptions ile derlenir. Sonuç olarak try, throw ve catch desteklenmez ve bunları kullanan kod derlenemez. Hatalı girdide std::stoi veya aralık dışı bir indeksle .at() gibi normalde istisna fırlatacak kütüphane işlevleri de burada yakalanamaz. Dönüştürmeden önce girdiyi kontrol edin, indeksleri size() ile karşılaştırın ya da hatayı belirtmek için bir std::optional döndürün:

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

Diğer sınırlamalar

  • İş parçacığı yok: std::thread, std::async ve pthreads kullanılamaz.
  • Ağ yok, fork/exec yok ve gerçek bir dosya sistemi yok; bu yüzden std::ifstream bilgisayarınızdaki dosyaları okuyamaz. Bunun yerine stdin kullanın.
  • Qt, SFML veya OpenGL gibi grafik veya GUI kütüphaneleri yok. Çıktı yalnızca metindir.
  • Boost gibi üçüncü taraf kütüphaneler kurulu değildir. Her şey tek bir main.cpp dosyasında olmalıdır.

Birkaç satırda modern C++

Başlangıç programı, modern C++'ı eski ders kitabı kodlarından daha kısa hâle getiren kalıpları gösterir:

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; });
  • Döngülerde std::endl yerine '\n' tercih edin. endl akışı ayrıca boşaltır (flush) ve bu daha yavaştır.
  • std::cin >> n ile std::getline birlikte kullanılıyorsa önce std::cin.ignore() çağırın; aksi hâlde getline önceki satırın geri kalanını boş bir dize olarak okur.
  • Bir std::map üzerinde operator[], anahtar yoksa varsayılan bir değer ekler. Map'i değiştirmeden bir anahtarı aramak için find veya contains (C++20) kullanın.

Sıkça sorulan sorular

Hangi C++ standardı kullanılıyor?

C++20; kod, Clang 21 tarafından -O2 -Wall seçenekleriyle derlenir. C++11, C++14 veya C++17 için yazılmış kodlar da derlenir.

try/catch içeren kodum neden derlenmiyor?

İstisnalar -fno-exceptions ile devre dışı bırakılmıştır. Bunların yerine dönüş değerleri, std::optional veya riskli işlemden önce açık kontroller kullanın.

bits/stdc++.h kullanabilir miyim?

Hayır. Bu başlık dosyası GCC'ye özgüdür ve libc++'ta bulunmaz. <iostream>, <vector> ve <algorithm> gibi ihtiyacınız olan standart başlıkları ekleyin.

Sade C için bir sürüm var mı?

Evet, online C derleyici aynı Clang'i C17 modunda kullanır. Sitedeki tüm online derleyicilere de göz atabilirsiniz.

Güncellendi

Panoya kopyalandı