0Pricing
C++ Academy · Lección

Construcción de una calculadora CLI sencilla

Construya una calculadora de línea de comandos que analice operadores y evalúe expresiones.

Construcción de una calculadora CLI sencilla es una lección gratuita de C++ Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de C++ Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de C++ Academy incluye 4 lecciones en total.

Objetivo del proyecto

Construya una calculadora de línea de comandos que lea una expresión como 3 + 4 e imprima el resultado. La mantendremos sencilla, pero bien estructurada.

Cabeceras necesarias

Necesitamos iostream para la E/S y string para la entrada.

#include <iostream>
#include <string>
#include <sstream>

Esqueleto del bucle principal

Lea una línea, analícela, calcule el resultado e imprímalo. Salga al llegar a EOF.

int main() {
    std::string line;
    while (std::getline(std::cin, line)) {
        if (line == "quit") break;
        double result = evaluate(line);
        std::cout << "= " << result << "\n";
    }
}

Análisis con stringstream

Para dos operandos y un operador, la tokenización con stringstream es sencilla y robusta.

double evaluate(const std::string& line) {
    std::stringstream ss(line);
    double a, b;
    char op;
    ss >> a >> op >> b;
    return apply(op, a, b);
}

Aplicar el operador

Use un switch sobre el carácter del operador.

double apply(char op, double a, double b) {
    switch (op) {
        case '+': return a + b;
        case '-': return a - b;
        case '*': return a * b;
        case '/': return b != 0 ? a / b : 0;
        default:  return 0;
    }
}

Gestión de errores

¿Qué ocurre si el usuario escribe algo no válido? Compruebe el estado del stream e informe del problema con un mensaje claro.

if (!(ss >> a >> op >> b)) {
    std::cout << "Invalid input\n";
    return 0;
}

División entre cero

Gestione explícitamente la división entre cero. Imprima un error o lance una excepción, según lo que se ajuste mejor a su diseño.

if (op == '/' && b == 0) {
    throw std::runtime_error("division by zero");
}

Añadir más operadores

Amplíe el switch para admitir más operaciones: %, ^ para potencias o funciones con nombre como sqrt.

Mantener el estado

¿Quiere mantener un total acumulado? Guarde el último resultado y permita que el usuario comience una expresión con +.

double last = 0;
// if first token is an operator, use `last` as the first operand

Perfeccionar la experiencia de usuario

Imprima un indicador antes de cada entrada, acepte quit o EOF para salir e ignore las líneas vacías.

Más allá de dos operandos

Para expresiones con varios operandos, como 3 + 4 * 2, necesita un analizador de expresiones. El algoritmo de shunting-yard es el enfoque estándar.

Probar la calculadora

Redirija la entrada desde un archivo para realizar pruebas rápidamente.

echo "3 + 4\n10 / 2" | ./calc

Comprobación rápida

¿Qué recurso de la biblioteca estándar resulta práctico para analizar tokens separados por espacios, como 3 + 4?

Resumen

Una calculadora de línea de comandos pequeña demuestra la E/S, el análisis con stringstream y el despacho mediante switch. Amplíela con gestión de errores, más operadores, estado y, finalmente, un analizador de expresiones.

Preguntas frecuentes

¿La lección «Construcción de una calculadora CLI sencilla» es gratis?

Sí — el texto completo de «Construcción de una calculadora CLI sencilla» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de C++ Academy, actualiza a CoddyKit PRO. El curso de C++ Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Construcción de una calculadora CLI sencilla»?

Construya una calculadora de línea de comandos que analice operadores y evalúe expresiones. Practicas C++ Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar C++ Academy?

No se requiere experiencia previa. C++ Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.

¿Cuánto tiempo toma la lección «Construcción de una calculadora CLI sencilla»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de C++ Academy?

Sí. Cada lección de C++ Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Construcción de una calculadora CLI sencilla
  2. Lectura y escritura de archivos CSV
  3. Un juego de adivinar números
  4. Un contador de frecuencia de palabras
← Volver a C++ Academy