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_HERE将此粘贴给任何已连接 IOTools 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 调用费用 | 5 积分起 |
|---|---|
| 需要更多积分? | 查看定价 |
也可通过
使用指南
这个工具做什么
从论坛帖子、diff、AI 生成的代码片段或经历过过多手工编辑的文件中获得的 C 和 C++ 源代码,往往会出现缩进不一致的情况—制表符与空格混合、if 语句体深度错误、右花括号与打开它的行不对齐。此工具通过逐行跟踪花括号({ / })的嵌套深度来重新缩进代码:每一行被重置为深度 × 缩进大小个空格,右花括号 } 在打印前会减少缩进,以便与开始花括号完全对齐。
这是一个基于花括号深度的重新缩进工具,而不是完整的 C++ 格式化工具。它不解析 C++ 语法、不重写运算符间距、不强制花括号风格(Allman vs. 花括号后跟)、不对齐指针(int* p vs int *p)、也不将长行换行到列限制—这些是 clang-format 等实际工具所做的事情。它修复的是最常见的可读性问题:行缩进深度错误。行的其他所有内容—标记、它们之间的间距、注释措辞—完全保持原样;只有前导空白会改变。
如何使用它
- 将你的 C 或 C++ 代码粘贴到 C / C++ 代码 框中,或直接上传源文件。
- 选择一个缩进大小—每个嵌套级别 2 个或 4 个空格(4 是默认值,符合常见的 C++ 风格指南)。
- 重新缩进的结果会立即显示在格式化后的代码面板中。复制它或下载为
formatted.cpp。
当你输入或编辑输入内容时,格式化会自动进行—没有按钮需要点击。
缩进逻辑如何工作
格式化工具逐行读取你的代码并保持一个运行中的嵌套深度。扫描每一行的净花括号数({/}):每个 { 增加之后行的深度,每个 } 减少深度。以 } 开头的行在打印前会减少缩进一级,这样 }(和 } else {)就能在视觉上与打开代码块的行对齐。
因为不应该因为在代码中意外出现的花括号而被转移注意力,扫描器会跳过出现在 "..." 字符串字面量、'...' 字符字面量、// 行注释和 /* ... */ 块注释内的花括号—包括跨越多行的块注释,在这些行中深度跟踪被冻结直到找到结束的 */。这涵盖了绝大多数真实世界的 C/C++ 源代码。一些边界情况故意超出了这种轻量级方法的范围:真正的 C++ 词法分析器还需要处理原始字符串字面量(R"(...)")、一行开头的多个右花括号(每个都被视为单个缩进减少步骤)和重新定义花括号式标记的预处理器宏。
如果你的输入中花括号不平衡—缺少 } 或有多余的—格式化工具永远不会出错或卡住。深度只是在达到零后停止减少,所以文件的其余部分仍然能正常格式化,而不是崩溃到负缩进。
常见问题
这的行为像 clang-format 吗? 不是。clang-format 完全解析 C++ 并可以重写花括号风格、运算符间距、指针对齐和行换行以匹配指定的风格(LLVM、Google、WebKit 等)。这个工具只基于花括号嵌套修复缩进深度—这是使代码可读的一个更小但仍然非常有用的部分。
它会改变我的代码逻辑或重写标记吗? 不会。只有每一行的前导空白会被替换。其他一切—行内的间距、字符串内容、注释文本、变量名—完全保持原样。
它适用于普通 C,而不仅仅是 C++ 吗? 是的。格式化工具只查看花括号嵌套和注释/字符串语法,这两者在 C 和 C++ 中都是相同的。
花括号不平衡会发生什么?
深度计数器被限制在零—它永远不会变成负数—所以缺少或多余的 } 会平稳降级而不是为文件的其余部分产生乱码输出。
它能一次格式化多个文件吗? 使用工具的批处理模式(如果可用)对上传的文件队列运行相同的缩进设置。
隐私
此工具完全在你的浏览器中运行。你的源代码—包括它包含的任何注释、字符串或文件路径—从不上传到服务器。