Formatador de Código C++
Reindente o código-fonte C e C++ rastreando a profundidade de aninhamento das chaves ({ }) — cada bloco recebe indentação consistente, com comentários e literais de string deixados intocados.
Entrada
Opções de Formatação
Saída
Mais formas de usar esta ferramenta
API REST
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"
}'Troque pela sua própria chave, da sua conta. Os campos da ferramenta viram o corpo da requisição — sem envelope.
Peça a um agente de IA
Use the IOTools `cpp-code-formatter` tool (C++ Code Formatter) on this input:
YOUR_INPUT_HERECole isto em qualquer agente conectado ao servidor MCP do IOTools e depois adicione sua entrada.
Widget para incorporar
<iframe
src="https://iotools.cloud/embed/cpp-code-formatter/"
width="100%" height="520" frameborder="0" scrolling="no" loading="lazy"
title="Formatador de Código 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>Coloque isso na sua própria página — grátis, sem chave, só um link de volta.
| Custo por chamada de API/MCP | A partir de 5 créditos |
|---|---|
| Precisa de mais créditos? | Ver preços |
Também disponível via
Guias
O que esta ferramenta faz
Código-fonte C e C++ obtido de um post de fórum, um diff, um snippet gerado por IA ou um arquivo que passou por uma edição manual demais tende a acabar com indentação inconsistente — tabulações misturadas com espaços, corpos if na profundidade errada, chaves de fechamento que não se alinham com a linha que as abriu. Esta ferramenta reindenta esse código rastreando a profundidade de aninhamento de brace ({ / }) linha por linha: cada linha é redefinida para espaços de profundidade × tamanho de indentação, e uma chave de fechamento } é recuada antes de ser impressa para que se alinhe perfeitamente com a chave de abertura.
É um recuador de profundidade de brace, não um formatador C++ completo. Não analisa a gramática C++, não reescreve espaçamento de operadores, não impõe um estilo de brace (Allman vs. anexado), não alinha ponteiros (int* p vs int *p) e não quebra linhas longas até um limite de coluna — o tipo de coisa que uma ferramenta real como clang-format faz. O que corrige é o problema de legibilidade mais comum: linhas em um nível de indentação errado. Tudo mais sobre uma linha — os tokens, o espaçamento entre eles, a redação do comentário — é deixado exatamente como você escreveu; apenas o espaço em branco à esquerda muda.
Como usar
- Cole seu código C ou C++ na caixa Código C / C++ ou envie um arquivo de fonte diretamente.
- Escolha um Tamanho da Indentação — 2 ou 4 espaços por nível de aninhamento (4 é o padrão e corresponde aos guias de estilo C++ comuns).
- O resultado recuado aparece instantaneamente no painel Código Formatado. Copie-o ou baixe-o como
formatted.cpp.
A formatação ocorre automaticamente conforme você digita ou edita a entrada — não há botão para clicar.
Como a lógica de indentação funciona
O formatador lê seu código linha por linha e mantém uma profundidade de aninhamento em execução. Uma linha é verificada para a contagem líquida {/}: cada { aumenta a profundidade que se aplica às linhas após ela, cada } diminui a profundidade. Uma linha cuja primeiro caractere é } é recuada um nível antes de ser impressa, para que } (e } else {) se alinhem visualmente com a linha que abriu o bloco.
Como a indentação não deve ser prejudicada por uma chave perdida que não é realmente código, o scanner ignora caracteres de chave que aparecem dentro de literais de string "...", literais de caracteres '...', comentários de linha // e comentários de bloco /* ... */ — incluindo comentários de bloco que abrangem múltiplas linhas, durante os quais o rastreamento de profundidade é congelado até que o */ de fechamento seja encontrado. Isso abrange a grande maioria do código-fonte C/C++ do mundo real. Um punhado de casos extremos estão intencionalmente fora do escopo para essa abordagem leve: um analisador C++ genuíno também precisaria lidar com literais de string brutos (R"(...)"), múltiplas chaves de fechamento no início de uma linha (cada uma é tratada como uma única etapa de recuo) e macros do pré-processador que redefinem tokens semelhantes a chaves.
Se as chaves em sua entrada estiverem desbalanceadas — uma } perdida ou uma extra — o formatador nunca erra ou fica preso. A profundidade simplesmente para de diminuir uma vez que atinge zero, então o restante do arquivo ainda é formatado de forma sensata em vez de desabar em indentação negativa.
FAQ
Isso se comporta como clang-format? Não. clang-format analisa completamente C++ e pode reescrever estilo de brace, espaçamento de operadores, alinhamento de ponteiros e quebra de linha para corresponder a um estilo nomeado (LLVM, Google, WebKit, etc.). Esta ferramenta apenas corrige a profundidade de indentação com base no aninhamento de brace — uma fatia muito menor, mas ainda muito útil, do que torna o código legível.
Vai mudar a lógica do meu código ou reescrever tokens? Não. Apenas o espaço em branco à esquerda de cada linha é substituído. Tudo mais — espaçamento dentro de uma linha, conteúdo de string, texto de comentário, nomes de variáveis — é deixado exatamente como escrito.
Funciona com C simples, não apenas C++? Sim. O formatador apenas olha para o aninhamento de brace e sintaxe de comentário/string, ambos idênticos em C e C++.
O que acontece com chaves desbalanceadas?
O contador de profundidade é fixado em zero — nunca fica negativo — então uma } perdida ou extra degrada graciosamente em vez de produzir uma saída garbled para o restante do arquivo.
Pode formatar vários arquivos de uma vez? Use o modo batch da ferramenta (onde disponível) para executar as mesmas configurações de indentação em toda uma fila de arquivos carregados.
Privacidade
Esta ferramenta funciona inteiramente no seu navegador. Seu código-fonte — incluindo quaisquer comentários, strings ou caminhos de arquivo que contenha — nunca é carregado em um servidor.