Bygning af en simpel beregner som CLI
Byg en kommandolinjeberegner, der fortolker operatorer og evaluerer udtryk
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 operandFinpuds 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" | ./calcHurtigt 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.
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
- Bygning af en simpel beregner som CLI
- Læsning og skrivning af CSV-filer
- Et talgættespil
- En tæller for ordfrekvens