Compilador en línea de C++ - Ejecuta, Prueba y Depura al Instante

Escribe, compila y ejecuta código C++ al instante en tu navegador con nuestro compilador en línea gratuito de C++. Perfecto para aprender, hacer pruebas rápidas y prepararte para entrevistas — sin necesidad de configuración o instalación.

💡 Guía de Conceptos Básicos de C++ para Principiantes

1. Declaración de Variables y Constantes

C++ requiere que declares el tipo de cada variable. Usa const para definir valores de solo lectura que no pueden cambiarse después de la inicialización.

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";

// Intentar modificar una constante causará un error en tiempo de compilación
// MAX_USERS = 200; // ❌ error

2. Condicionales (if / switch)

Usa if, else if, else para ramificaciones. Usa switch para múltiples valores.

int x = 2;
if (x == 1) {
    std::cout << "Uno\n";
} else if (x == 2) {
    std::cout << "Dos\n";
} else {
    std::cout << "Otro\n";
}

// Switch-case
switch (x) {
    case 1:
        std::cout << "Uno\n";
        break;
    case 2:
        std::cout << "Dos\n";
        break;
    default:
        std::cout << "Otro\n";
}

3. Bucles

Usa for, while, y do-while para repetir bloques 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. Arreglos

Los arreglos almacenan múltiples elementos del mismo tipo.

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

5. Manipulación de Arreglos/Vectores

Usa std::vector para arreglos 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/Salida de Consola

Usa std::cin para entrada y std::cout para salida.

std::string name;
std::cout << "Ingresa tu nombre: ";
std::cin >> name;
std::cout << "Hola, " << name << "\n";

7. Funciones

Las funciones agrupan lógica reutilizable. Usa parámetros y tipos de retorno.

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

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

8. Mapas

std::map almacena pares clave-valor como diccionarios.

#include <map>

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

9. Manejo de Excepciones

Usa try y catch para manejar errores en tiempo de ejecución.

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

10. Entrada/Salida de Archivos

Usa fstream para leer y escribir en archivos.

#include <fstream>

std::ofstream out("file.txt");
out << "Hola Archivo";
out.close();

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

11. Manipulación de Cadenas

Las cadenas en C++ soportan métodos como length(), substr(), y find().

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

12. Clases y Objetos

C++ soporta programación orientada a objetos usando clases.

class Person {
  public:
    std::string name;
    Person(std::string n) : name(n) {}
    void greet() { std::cout << "Hola, soy " << name; }
};

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

13. Punteros

Un puntero almacena la dirección de memoria de otra variable. Usa & para obtener una dirección, y * para desreferenciar (acceder al valor en la dirección).

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

std::cout << "Valor de x: " << x << "\n";
std::cout << "Dirección de x: " << ptr << "\n";
std::cout << "Valor desde el puntero: " << *ptr << "\n";

// Modificar x a través del puntero
*ptr = 20;
std::cout << "x actualizado: " << x << "\n";