Pular para o conteúdo principal

Formatador de Código C++

API reference

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

Drop a file or browse
One file · text
Ou

Opções de Formatação

Saída

Código Formatado
 
Isso foi útil?

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_HERE

Cole 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/MCPA 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

  1. Cole seu código C ou C++ na caixa Código C / C++ ou envie um arquivo de fonte diretamente.
  2. 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).
  3. 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.

c++cppccode formatterindentbeautifybrace

Ama as ferramentas? Livre-se dos anúncios.

Um único pagamento remove todos os anúncios da sua conta, para sempre. Sem assinatura, sem rastreamento.