跳到主要内容

C++ 代码格式化工具

通过跟踪大括号({ })的嵌套深度来重新缩进 C 和 C++ 源代码——每个代码块获得一致的缩进,注释和字符串字面量保持不变。

输入

Drop a file or browse
One file · text
或

格式化选项

输出

格式化后的代码
 
这对您有帮助吗?

使用此工具的更多方式

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 等实际工具所做的事情。它修复的是最常见的可读性问题:行缩进深度错误。行的其他所有内容—标记、它们之间的间距、注释措辞—完全保持原样;只有前导空白会改变。

如何使用它

  1. 将你的 C 或 C++ 代码粘贴到 C / C++ 代码 框中,或直接上传源文件。
  2. 选择一个缩进大小—每个嵌套级别 2 个或 4 个空格(4 是默认值,符合常见的 C++ 风格指南)。
  3. 重新缩进的结果会立即显示在格式化后的代码面板中。复制它或下载为 formatted.cpp。

当你输入或编辑输入内容时,格式化会自动进行—没有按钮需要点击。

缩进逻辑如何工作

格式化工具逐行读取你的代码并保持一个运行中的嵌套深度。扫描每一行的净花括号数({/}):每个 { 增加之后行的深度,每个 } 减少深度。以 } 开头的行在打印前会减少缩进一级,这样 }(和 } else {)就能在视觉上与打开代码块的行对齐。

因为不应该因为在代码中意外出现的花括号而被转移注意力,扫描器会跳过出现在 "..." 字符串字面量、'...' 字符字面量、// 行注释和 /* ... */ 块注释内的花括号—包括跨越多行的块注释,在这些行中深度跟踪被冻结直到找到结束的 */。这涵盖了绝大多数真实世界的 C/C++ 源代码。一些边界情况故意超出了这种轻量级方法的范围:真正的 C++ 词法分析器还需要处理原始字符串字面量(R"(...)")、一行开头的多个右花括号(每个都被视为单个缩进减少步骤)和重新定义花括号式标记的预处理器宏。

如果你的输入中花括号不平衡—缺少 } 或有多余的—格式化工具永远不会出错或卡住。深度只是在达到零后停止减少,所以文件的其余部分仍然能正常格式化,而不是崩溃到负缩进。

常见问题

这的行为像 clang-format 吗? 不是。clang-format 完全解析 C++ 并可以重写花括号风格、运算符间距、指针对齐和行换行以匹配指定的风格(LLVM、Google、WebKit 等)。这个工具只基于花括号嵌套修复缩进深度—这是使代码可读的一个更小但仍然非常有用的部分。

它会改变我的代码逻辑或重写标记吗? 不会。只有每一行的前导空白会被替换。其他一切—行内的间距、字符串内容、注释文本、变量名—完全保持原样。

它适用于普通 C,而不仅仅是 C++ 吗? 是的。格式化工具只查看花括号嵌套和注释/字符串语法,这两者在 C 和 C++ 中都是相同的。

花括号不平衡会发生什么? 深度计数器被限制在零—它永远不会变成负数—所以缺少或多余的 } 会平稳降级而不是为文件的其余部分产生乱码输出。

它能一次格式化多个文件吗? 使用工具的批处理模式(如果可用)对上传的文件队列运行相同的缩进设置。

隐私

此工具完全在你的浏览器中运行。你的源代码—包括它包含的任何注释、字符串或文件路径—从不上传到服务器。

c++cppccode formatterindentbeautifybrace

喜欢这些工具?去掉广告吧。

一次性付款即可永久移除您账户中的所有广告。无需订阅,不追踪。