C++ Academy · Lektion

Bygning af en simpel beregner som CLI

Byg en kommandolinjeberegner, der fortolker operatorer og evaluerer udtryk

Lektion 1 af 414 trin

Bygning af en simpel beregner som CLI er en gratis C++ Academy-lektion på CoddyKit. Dette er lektion 1 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i C++ Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. C++ Academy-kurset indeholder 4 lektioner i alt.

Projektmål

Byg en kommandolinjeberegner, der læser et udtryk som 3 + 4 og udskriver resultatet. Vi holder den enkel, men velstruktureret.

Nødvendige headerfiler

Vi har brug for iostream til input og output og string til input.

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

Skelet til hovedløkken

Læs en linje, fortolk den, beregn, og udskriv. Afslut ved EOF.

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

Fortolkning med stringstream

For to operander og én operator er opdeling i tokens med stringstream enkel og robust.

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

Anvend operator

Et switch-udtryk baseret på operator-tegnet.

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

Fejlhåndtering

Hvad sker der, hvis brugeren skriver noget ugyldigt? Kontrollér streamens tilstand, og vis en venlig meddelelse.

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

Division med nul

Håndtér division med nul eksplicit. Udskriv en fejl, eller udløs en undtagelse — alt efter hvad der passer til din udformning.

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

Tilføj flere operatorer

Udvid switch-udtrykket, så det understøtter flere operationer: %, ^ for potens eller navngivne funktioner som sqrt.

Bevar tilstand

Vil du have en løbende total? Gem det seneste resultat, og lad brugeren begynde et udtryk med +.

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

Finpuds brugeroplevelsen

Vis en indtastningsprompt før hvert input, acceptér quit eller EOF for at afslutte, og ignorér tomme linjer.

Flere end to operander

For udtryk med flere operander som 3 + 4 * 2 skal du bruge en udtryksfortolker. Shunting-yard-algoritmen er standardløsningen.

Test af beregneren

Omdirigér input fra en fil for hurtigt at teste.

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

Hurtigt tjek

Hvilken funktion i standardbiblioteket er praktisk til at fortolke mellemrumsadskilte tokens som 3 + 4?

Opsummering

En lille kommandolinjeberegner demonstrerer input og output, fortolkning med stringstream og valg af handling styret af et switch-udtryk. Udvid den med fejlhåndtering, flere operatorer, tilstand og til sidst en udtryksfortolker.

Gratis at komme i gang

Lær C++ med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
51
Lektioner
203

Ofte stillede spørgsmål

Er lektionen “Bygning af en simpel beregner som CLI” gratis?

Ja — alle 3 lektioner i læringssporet C++ Academy, inklusive “Bygning af en simpel beregner som CLI”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. C++ Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Bygning af en simpel beregner som CLI”?

Byg en kommandolinjeberegner, der fortolker operatorer og evaluerer udtryk Du øver dig i C++ Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på C++ Academy?

Der kræves ingen tidligere erfaring. C++ Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 1 af 4.

Hvor lang tid tager lektionen “Bygning af en simpel beregner som CLI”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne C++ Academy-lektion?

Ja. Alle C++ Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Bygning af en simpel beregner som CLI
  2. Læsning og skrivning af CSV-filer
  3. Et talgættespil
  4. En tæller for ordfrekvens
← Tilbage til C++ Academy