C++コードフォーマッター
括弧({ })のネストの深さを追跡してC/C++ソースコードの再インデントを行います—すべてのブロックが一貫したインデントを取得し、コメントと文字列リテラルはそのままです。
入力
フォーマット設定
出力
このツールを使う他の方法
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"
}'ご自身のアカウントのキーに差し替えてください。ツールのフィールドがそのままリクエストボディになります——ラッパーはありません。
AIエージェントに依頼する
Use the IOTools `cpp-code-formatter` tool (C++ Code Formatter) on this input:
YOUR_INPUT_HEREIOTools MCPサーバーに接続された任意のエージェントにこれを貼り付け、入力内容を追加してください。
埋め込みウィジェット
<iframe
src="https://iotools.cloud/embed/cpp-code-formatter/"
width="100%" height="520" frameborder="0" scrolling="no" loading="lazy"
title="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>ご自身のページに貼り付けるだけ——無料、キー不要、リンクを掲載するだけです。
| API/MCP 1回あたりの費用 | 5クレジットから |
|---|---|
| クレジットが足りませんか? | 料金を見る |
次の方法でも利用可能
ガイド
このツールが行うこと
フォーラムの投稿から取得した C と C++ ソースコード、diff、AI が生成したスニペット、または手作業による編集が多すぎたファイルは、通常、インデントが一貫していない状態になります—タブとスペースが混在し、if 本体が間違った深さにあり、閉じ括弧が開き括弧と揃っていません。このツールは括弧({ / })のネストの深さを行ごとに追跡してコードを再インデントします。すべての行は深さ × インデントサイズのスペースにリセットされ、閉じ括弧 } は印字前に逆インデントされるため、開き括弧と完全に揃います。
これは括弧の深さの再インデンタ、完全な C++ フォーマッタではありません。C++ の文法を解析しておらず、演算子の間隔を書き直さず、括弧スタイル(Allman vs. attached)を強制せず、ポインタを揃えず(int* p vs int *p)、長い行を列の制限までラップしません—clang-format のような本物のツールが行うようなことです。修正するのは最も一般的な可読性の問題です。行が間違ったインデント レベルにあります。行のその他すべて—トークン、それらの間の間隔、コメントの文言—は、書いた通りに残されます。先頭の空白だけが変わります。
使用方法
- C または C++ コードを C / C++コード ボックスに貼り付けるか、ソース ファイルを直接アップロードします。
- インデントサイズ を選択します—ネストのレベルごとに 2 または 4 スペース(4 がデフォルトであり、一般的な C++ スタイル ガイドと一致します)。
- 再インデントされた結果が フォーマット済みコード パネルに即座に表示されます。コピーするか、
formatted.cppとしてダウンロードします。
入力を入力または編集するときに、フォーマットが自動的に行われます—クリックするボタンはありません。
インデント ロジックの仕組み
フォーマッタは行ごとにコードを読み、実行中のネストの深さを保持します。行は正味の {/} カウントについてスキャンされます。各 { はそれ以降の行に適用される深さを増加させ、各 } は深さを減少させます。最初の文字が } の行は印字前に 1 レベル逆インデントされるため、}(および } else {)はブロックを開いた行と視覚的に揃います。
インデントは実際のコードではない迷い括弧によって影響を受けないようにするため、スキャナは "..." 文字列リテラル、'...' 文字リテラル、// 行コメント、/* ... */ ブロック コメント内に表示される括弧文字をスキップします—複数行にまたがるブロック コメント(その間、深さ追跡は */ の閉じまで凍結されます)を含みます。これは実世界のほとんどの C/C++ ソースをカバーしています。このような軽量アプローチの対象外となるエッジ ケースはいくつかあります。本物の C++ レクサーは、生文字列リテラル(R"(...)")、1 行の先頭にある複数の閉じ括弧(各括弧は単一の逆インデント ステップとして扱われます)、および括弧のようなトークンを再定義するプリプロセッサ マクロも処理する必要があります。
入力の括弧がバランスしていない場合—欠落している } または余分な場合—フォーマッタはエラーが発生したり、ハングしたりすることはありません。深さはゼロに達したら減少を停止するだけなので、ファイルの残りの部分はまだ適切にフォーマットされ、負のインデントに崩壊する代わりにします。
FAQ
これは clang-format のように動作しますか? いいえ。clang-format は C++ を完全に解析し、括弧スタイル、演算子の間隔、ポインタの配置、および行の折り返しを名前付きスタイル(LLVM、Google、WebKit など)と一致するように書き直すことができます。このツールは、括弧のネストに基づいて、インデントの深さを修正するだけです—コードを読みやすくするものの、はるかに小さいながらも非常に有用なスライスです。
コードのロジックを変更したり、トークンを書き直したりしますか? いいえ。各行の先頭の空白だけが置き換えられます。その他すべて—行内の間隔、文字列の内容、コメント テキスト、変数名—は、書いた通りに残されます。
単なる C、C++ だけではなく機能しますか? はい。フォーマッタは括弧のネストとコメント/文字列の構文のみを調べます。どちらも C と C++ では同じです。
バランスしていない括弧はどうなりますか?
深さカウンタはゼロで固定されます—負にはなりません—したがって、欠落または余分な } は、ファイルの残りの部分をガベージ出力する代わりに適切に分解されます。
複数のファイルを一度にフォーマットできますか? ツールのバッチ モード(利用可能な場合)を使用して、アップロードされたファイルのキュー全体に同じインデント設定を適用します。
プライバシー
このツールはブラウザ内で完全に実行されます。ソース コード(含むコメント、文字列、またはファイル パス)は、サーバーにアップロードされることはありません。