1.6k Aufrufe
Gefragt in Anwendungen(Java,C++...) von
Hi,
Ich möchte machen, dass man bei meinem C++-Programm nur +, -, *, und / eingeben kann, und wenn etwas anderes eingegeben wird dass dann ein Fehler kommt... Nur ich weiß nicht was ich da eingeben muss... Ich hoffe ihr könnt mir helfen!!

mfg

6 Antworten

0 Punkte
Beantwortet von
#include <iostream>
using namespace std;

int main()
{
char op;
cin >> op
switch (op)
{
case '+' :
cout << "+ eingegeben" << endl;
break;
case '-' :
cout << "- eingegeben" << endl;
break;
// usw
default :
cout << "Fehler" << endl;
}
return 0;
}
0 Punkte
Beantwortet von
Danke für die Antwort =) Diese Methode habe ich auch schon gefunden, aber das ist doch mit einem Switch =) Gibt es keine Methode über If-Funktion?

mfg
0 Punkte
Beantwortet von
Switch ist im Prinzip nur eine Art komfortable if-Abfrage.
Du könntest das im Prinzip ja auch mit ifs ausdrücken, also so:
if(op == '+')
{
// + gedrückt
}
if(op == '-')
{
// - gedrückt
}


usw.

Was mir sonst noch einfallen würde:

bool eingabe(char c)
{
char erlaubt[] = {'+', '-', '/', '*'};
int number = sizeof(array)/sizeof(array[0]);
int i = 0;
for(i = 0; i < number; i++)
{
if(erlaubt[i] == c)
{
return true;
}
}
return false;
}


Müsste selbsterklärend sein ;)

Beste Grüße
0 Punkte
Beantwortet von
if(op == '+')
{
// + gedrückt
}
if(op == '-')
{
// - gedrückt
}


Kann man da nicht einfach sagen so etwas ähnliches wie:
if (c-ist-nicht=='+, -, *, /)
...

Also dass es da sowas ähnliches gibt wie dieses =)? Sonst mache ich es mit einem Switch ^^

mfg
0 Punkte
Beantwortet von bored Mitglied (197 Punkte)
Was ist das Problem mit dem switch???? Im Gegensatz zu 4 ifs kann der Compiler da immerhin noch etwas optimieren!

Du könntest es so abfragen:
if (c != "+" && c != "-" && c != "*" && c != "/") {
cout >> "Fehler! Ungültiger Operand!\n";
return 1;
}

Für die Berechnung musst du hinterher aber sowieso durch ein switch, darum verstehe ich nicht ganz, was dieser ganze Unsinn soll.
Für die Fehlermeldung kannst du schließlich den default:-Teil benutzen.
0 Punkte
Beantwortet von deluxestyle Mitglied (901 Punkte)
such mal nach Regex...
die meisten Programmiersprachen bieten das
...