Compilador Online C++ - Execute, Teste e Depure Instantaneamente

Escreva, compile e execute código C++ instantaneamente no seu navegador com nosso compilador online gratuito de C++. Perfeito para aprender, testar rapidamente e se preparar para entrevistas — sem necessidade de configuração ou instalação.

💡 Guia Básico de C++ para Iniciantes

1. Declarando Variáveis e Constantes

C++ requer que você declare o tipo de cada variável. Use const para definir valores somente leitura que não podem ser alterados após a inicialização.

int age = 30;
double pi = 3.14159;
char grade = 'A';
std::string name = "Alice";
bool isActive = true;

// Constantes
const int MAX_USERS = 100;
const std::string COMPANY = "CodeUtility";

// Tentar modificar uma const causará um erro em tempo de compilação
// MAX_USERS = 200; // ❌ erro

2. Condicionais (if / switch)

Use if, else if, else para ramificações. Use switch para múltiplos valores.

int x = 2;
if (x == 1) {
    std::cout << "Um\n";
} else if (x == 2) {
    std::cout << "Dois\n";
} else {
    std::cout << "Outro\n";
}

// Switch-case
switch (x) {
    case 1:
        std::cout << "Um\n";
        break;
    case 2:
        std::cout << "Dois\n";
        break;
    default:
        std::cout << "Outro\n";
}

3. Loops

Use for, while, e do-while para repetir blocos de código.

for (int i = 0; i < 3; i++) {
    std::cout << i << "\n";
}

int n = 3;
while (n > 0) {
    std::cout << n << "\n";
    n--;
}

4. Arrays

Arrays armazenam múltiplos elementos do mesmo tipo.

int numbers[3] = {10, 20, 30};
std::cout << numbers[1] << "\n";

5. Manipulação de Array/Vetor

Use std::vector para arrays dinâmicos.

#include <vector>

std::vector nums = {1, 2, 3};
nums.push_back(4);
nums.pop_back();

for (int n : nums) {
    std::cout << n << " ";
}

6. Entrada/Saída de Console

Use std::cin para entrada e std::cout para saída.

std::string name;
std::cout << "Digite seu nome: ";
std::cin >> name;
std::cout << "Olá, " << name << "\n";

7. Funções

Funções agrupam lógica reutilizável. Use parâmetros e tipos de retorno.

int add(int a, int b) {
    return a + b;
}

std::cout << add(3, 4);

8. Mapas

std::map armazena pares chave-valor como dicionários.

#include <map>

std::map ages;
ages["Alice"] = 30;
std::cout << ages["Alice"];

9. Tratamento de Exceções

Use try e catch para lidar com erros em tempo de execução.

try {
    throw std::runtime_error("Erro ocorrido");
} catch (const std::exception& e) {
    std::cout << e.what();
}

10. Entrada/Saída de Arquivo

Use fstream para ler e escrever em arquivos.

#include <fstream>

std::ofstream out("file.txt");
out << "Olá Arquivo";
out.close();

std::ifstream in("file.txt");
std::string line;
getline(in, line);
std::cout << line;
in.close();

11. Manipulação de Strings

Strings em C++ suportam métodos como length(), substr(), e find().

std::string text = "Olá Mundo";
std::cout << text.length();
std::cout << text.substr(0, 5);
std::cout << text.find("Mundo");

12. Classes e Objetos

C++ suporta programação orientada a objetos usando classes.

class Person {
  public:
    std::string name;
    Person(std::string n) : name(n) {}
    void greet() { std::cout << "Oi, eu sou " << name; }
};

Person p("Alice");
p.greet();

13. Ponteiros

Um ponteiro armazena o endereço de memória de outra variável. Use & para obter um endereço, e * para desreferenciar (acessar o valor no endereço).

int x = 10;
int* ptr = &x;

std::cout << "Valor de x: " << x << "\n";
std::cout << "Endereço de x: " << ptr << "\n";
std::cout << "Valor do ponteiro: " << *ptr << "\n";

// Modificar x através do ponteiro
*ptr = 20;
std::cout << "x atualizado: " << x << "\n";