Fundamentos de C/C++

Tipos de dados e formatação de saída em C e C++

Nesta lição, você vai declarar variáveis inteiras e de ponto flutuante e imprimi-las com o formato correto em C e em C++.

Introdução

C e C++ compartilham os tipos numéricos básicos, como int para inteiros e double para números com casas decimais. A forma de formatar a saída, porém, é diferente: C usa a string de formato de printf, e C++ usa fluxos de saída (streams) junto com as ferramentas da biblioteca iomanip.

Pontos importantes

  • Ative os avisos do compilador (compiler warnings) e corrija todos eles.
  • Entenda o tipo de dado e o tempo de vida (lifetime) de cada valor.
  • Sempre valide os dados de entrada e os limites dos índices de arrays.

Exemplos de código C e C++

C
Executar →
main.c
#include <stdio.h>

int main(void) {
    int items = 7;
    double price = 3.5;
    printf("items=%d total=%.2f\n", items, items * price);
    return 0;
}
Resultado da execução
items=7 total=24.50
C++
Executar →
main.cpp
#include <iomanip>
#include <iostream>

int main() {
    int items = 7;
    double price = 3.5;
    std::cout << "items=" << items << " total="
              << std::fixed << std::setprecision(2) << items * price << '\n';
}
Resultado da execução
items=7 total=24.50

Comparação entre C e C++

Com printf, cada valor precisa de um especificador correspondente, como %d para int e %.2f para um número com 2 casas decimais. Se o especificador não combinar com o tipo, o resultado sai errado. Em C++, std::cout escolhe como imprimir pelo tipo do valor, e std::fixed com std::setprecision controla as casas decimais.

C

C usa funções procedurais pequenas e deixa à vista como os dados ficam na memória.

C++

C++ continua permitindo trabalhar em baixo nível, mas acrescenta tipos da biblioteca e abstrações mais seguras.

Exercícios práticos

Execute as duas versões e depois mude o código para observar a diferença de segurança que cada linguagem oferece.

  • Teste entradas inválidas e valores nos limites.
  • Compile com as flags -Wall -Wextra -Wpedantic para ativar mais avisos.
  • Separe as declarações compartilhadas em um arquivo de cabeçalho e a implementação em outro arquivo.

Pratique com um desafio

Use o conteúdo desta lição para resolver um problema real. Cada desafio roda no navegador, com testes instantâneos e uma revisão por IA.

Todos os desafios