Pemformat Kode C++
Atur ulang indentasi kode sumber C dan C++ dengan melacak kedalaman nesting brace ({ }) — setiap blok mendapat indentasi konsisten, dengan komentar dan string literal tetap tidak berubah.
Input
Opsi Pemformatan
Output
Cara lain menggunakan alat ini
REST API
curl -X POST https://api.iotools.cloud/v1/tool/cpp-code-formatter \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"inputCode": "int max(int a, int b) {\n if (a > b) {\nret…",
"indentSize": "4"
}'Ganti dengan kunci Anda sendiri dari akun Anda. Bidang alat menjadi isi permintaan — tanpa pembungkus.
Tanyakan ke agen AI
Use the IOTools `cpp-code-formatter` tool (C++ Code Formatter) on this input:
YOUR_INPUT_HERETempelkan ini ke agen mana pun yang terhubung ke server MCP IOTools, lalu tambahkan input Anda.
Widget sematan
<iframe
src="https://iotools.cloud/embed/cpp-code-formatter/"
width="100%" height="520" frameborder="0" scrolling="no" loading="lazy"
title="Pemformat Kode C++ — iotools.cloud"
sandbox="allow-scripts allow-forms allow-same-origin allow-downloads allow-popups allow-popups-to-escape-sandbox"
allow="clipboard-write"
style="width:100%;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden"></iframe>
<script src="https://iotools.cloud/embed.js" async></script>Tempelkan ini di halaman Anda sendiri — gratis, tanpa kunci, cukup tautan balik.
| Biaya per panggilan API/MCP | Mulai dari 5 kredit |
|---|---|
| Butuh kredit lebih? | Lihat harga |
Juga tersedia melalui
Panduan
Apa yang dilakukan alat ini
Kode sumber C dan C++ yang diambil dari postingan forum, diff, potongan yang dihasilkan AI, atau file yang telah melalui terlalu banyak pengeditan manual cenderung berakhir dengan indentasi yang tidak konsisten — tab yang bercampur dengan spasi, isi if pada kedalaman yang salah, kurung penutup yang tidak selaras dengan baris yang membukanya. Alat ini mengubah indentasi kode dengan melacak kedalaman nesting brace ({ / }) baris per baris: setiap baris diatur ulang ke spasi kedalaman × ukuran indentasi, dan } penutup dikurangi indentasinya sebelum dicetak sehingga selaras dengan rapi dengan kurung buka yang membukanya.
Ini adalah pengubah indentasi kedalaman-brace, bukan pemformat C++ penuh. Ini tidak menguraikan tata bahasa C++, tidak menulis ulang spasi operator, tidak menerapkan gaya brace (Allman vs. terlampir), tidak menyelaraskan pointer (int* p vs int *p), dan tidak membungkus baris panjang ke batas kolom — hal-hal yang dilakukan alat nyata seperti clang-format. Apa yang diperbaikinya adalah masalah keterbacaan yang paling umum: baris yang berada pada level indentasi yang salah. Segala yang lain tentang baris — token, spasi di antara mereka, redaksi komentar — dibiarkan persis seperti yang Anda tulis; hanya spasi terkemuka yang berubah.
Cara menggunakannya
- Tempel kode C atau C++ Anda ke dalam kotak Kode C / C++, atau unggah file sumber secara langsung.
- Pilih Ukuran Indentasi — 2 atau 4 spasi per level nesting (4 adalah default dan cocok dengan panduan gaya C++ umum).
- Hasil yang diindentasi kembali muncul secara instan di panel Kode Terformat. Salin atau unduh sebagai
formatted.cpp.
Pemformatan terjadi secara otomatis saat Anda mengetik atau mengedit input — tidak ada tombol yang perlu diklik.
Cara kerja logika indentasi
Pemformat membaca kode Anda baris per baris dan mempertahankan kedalaman nesting yang berjalan. Sebuah baris dipindai untuk jumlah {/} bersih: setiap { meningkatkan kedalaman yang berlaku untuk baris setelahnya, setiap } mengurangi kedalaman. Baris yang karakter pertamanya adalah } dikurangi indentasinya satu level sebelum dicetak, sehingga } (dan } else {) selaras secara visual dengan baris yang membuka blok.
Karena indentasi tidak boleh dilempar oleh brace yang tersesat yang sebenarnya bukan kode, pemindai melewati karakter brace yang muncul di dalam literal string "...", literal karakter '...', komentar baris //, dan komentar blok /* ... */ — termasuk komentar blok yang mencakup beberapa baris, di mana pelacakan kedalaman dibekukan hingga */ penutup ditemukan. Ini mencakup sebagian besar sumber C/C++ dunia nyata. Segelintir kasus tepi disengaja di luar jangkauan untuk pendekatan ringan ini: lekser C++ asli juga perlu menangani literal string mentah (R"(...)"), beberapa kurung penutup di awal satu baris (masing-masing diperlakukan sebagai langkah dedent tunggal), dan makro preprocessor yang mendefinisikan ulang token mirip-brace.
Jika brace dalam input Anda tidak seimbang — } yang hilang, atau yang berlebihan — pemformat tidak pernah mengalami kesalahan atau terjebak. Kedalaman cukup berhenti berkurang setelah mencapai nol, sehingga sisa file masih memformat dengan masuk akal daripada runtuh ke indentasi negatif.
FAQ
Apakah ini berperilaku seperti clang-format? Tidak. clang-format sepenuhnya menguraikan C++ dan dapat menulis ulang gaya brace, spasi operator, penyelarasan pointer, dan pembungkus baris untuk mencocokkan gaya yang dinamai (LLVM, Google, WebKit, dll.). Alat ini hanya memperbaiki kedalaman indentasi berdasarkan nesting brace — potongan yang jauh lebih kecil, tetapi masih sangat berguna, dari apa yang membuat kode dapat dibaca.
Apakah ini akan mengubah logika kode saya atau menulis ulang token? Tidak. Hanya spasi terkemuka dari setiap baris yang diganti. Segala yang lain — spasi dalam baris, konten string, teks komentar, nama variabel — dibiarkan persis seperti ditulis.
Apakah ini bekerja dengan C biasa, bukan hanya C++? Ya. Pemformat hanya melihat nesting brace dan sintaks komentar/string, yang keduanya identik dalam C dan C++.
Apa yang terjadi dengan brace yang tidak seimbang?
Penghitung kedalaman ditarik pada nol — tidak pernah menjadi negatif — jadi } yang hilang atau berlebihan menurun dengan anggun daripada menghasilkan output yang kacau untuk sisa file.
Bisakah itu memformat beberapa file sekaligus? Gunakan mode batch alat (jika tersedia) untuk menjalankan pengaturan indentasi yang sama di seluruh antrian file yang diunggah.
Privasi
Alat ini berjalan sepenuhnya di browser Anda. Kode sumber Anda — termasuk komentar, string, atau jalur file apa pun yang dikandungnya — tidak pernah diunggah ke server.