bei Konsoleneingabe zwischen Zahl und Buchstaben unterscheiden (war: kleine anfänger frage)
-
îch hab vor ein paar tagen angefangen c++ zu lernen!
ich wusste jetzt net wo ich reinschreiben sollte aber da ich mit notepad und borland programmiere bin ich hier gelandet.also ich üb fleissig die grundlagen
ich hab ein klenes rechenprogramm geschrieben wenn ich jetzt anstatt eine zahl ein buchstabe eingebe dann fast das programm das als 0 auf (das is mir klar) ABER wenn ich das programm jetzt in einer do while schleife packe um es beliebig oft zu wiederholen DANN DREHT ES BEI DER EINGABE EINES BUCHSTABEN TOTAL DURCH wieso?
Edit:
Bitte aussagekräftige Überschriften wählen, und bitte nicht BRÜLLEN.
Danke!
-
Dein Programm kann ja nicht so lang sein. Schreib es doch einfach mal hier rein.
-
ich hab mit FUNKTIONEN und HEADER-DATEIEN rum EXPERIMENTIERT. die header dateien und funktionen hab ich weg gelassen die kann man sich ja vorstellen.
ich nehm mal an das es an integer variabele liegt da man in der nur zahlen speichern kann aber hier mal der haupteil des progs!
#include <iostream.h> #include "funktR.h" #include "funktQ.h" #include "funktD.h" void main(void) { int iEingabe1; int iEingabe2; int iAuswahl; int iErgebnis; int iBeenden; do { cout << "Was moechten sie berechnen" << endl; cout << "Quadrat [1]" << endl; cout << "Rechteck [2]" << endl; cout << "Dreieck [3]" << endl; cout << "Auswahl bitte: "; cin >> iAuswahl; switch(iAuswahl) { case 1: { cout << endl << "Bitte Seitenlaenge in mm eingeben: "; cin >> iEingabe1; iErgebnis = Quadrat(iEingabe1); cout << endl << "Das Ergebnis ist: " << iErgebnis << " Quadrat mm"; break; } case 2: { cout << endl <<"Bitte Breite in mm eingeben: "; cin >> iEingabe1; cout << endl << "Bitte Hoehe in mm eingeben: "; cin >> iEingabe2; iErgebnis = Rechteck(iEingabe1, iEingabe2); cout << endl << "Das Ergebnis ist: " << iErgebnis << " Quadrat mm"; break; } case 3: { cout << endl << "Bitte Breite in mm eingeben: "; cin >> iEingabe1; cout << endl << "Bitte Hoehe in mm eingeben: "; cin >> iEingabe2; iErgebnis = Dreieck(iEingabe1, iEingabe2); cout << endl << "Das Ergebnis ist: " << iErgebnis << " Quadrat mm"; break; } } cout << endl << "####################################################"; cout << endl << "Moechten sie eine weitere berechnung machen?"; cout << "JA[0] NEIN[1]: "; cin >> iBeenden; cout << "####################################################" << endl; } while (iBeenden!=1); };
Edit:
Bitte die Code-Tags benutzen. Danke!
-
ich hab schnell noch was getippelt was das gleiche prob hat
also es muss meiner meinung nach mit der schleife und der variabelen zu tun haben
aber ich bin absoluter anfänger also warte ich auf deine meinung!
achso und wie ich sowas beheben könnte? wer au net schlecht zu wissen!
#include <iostream.h> void main(void) { int iEingabe; int iAuswahl; do { cout << "bitte zahl eingeben: "; cin >> iEingabe; iEingabe = iEingabe * iEingabe; cout << endl << "ergebniss: " << iEingabe << endl; cout << "wiederholen? [0]JA [1]NEIN: "; cin >> iAuswahl; } while(iAuswahl!=1); }
Edit:
Bitte die Code-Tags benutzen. Danke!
-
Morgen!
Als erstes, es heißt:
int main (int argc, char* argv[])
2. Bei deiner switch-Anweisung fehlt das default
switch(iAuswahl) { case 1: //bla... break; ... default: //bla... break; }
Mach doch aus deinem iAuswahl einfach ein char, dann ist es auch egal, wenn du buchstaben eingibst. In der default-Anweisung kannst du dann einfach die fehlerhafte eingabe abfangen.
P.S. Beim nächsten mal bitte Code-Tags verwenden!
-
theroofis schrieb:
da ich mit notepad und borland programmiere bin ich hier gelandet.
Das war 'ne Bruchlandung, solche Fragen gehören nach "C++".
Weil das aber ein eher triviales Problem ist werden wir diesmal noch vom Verschieben absehen.
-
PuppetMaster2k schrieb:
Bei deiner switch-Anweisung fehlt das default.
Quatsch! Das ist nicht notwendig!