004
07.01.2016, 22:46 Uhr
JohnDoe
|
Danke für eure schnellen Antworten, habe es nun alles ein bisschen umgeschrieben, das mit der Fehlerausgabe klappt auch ganz gut
C++: |
while(!(cin >> Meter)) { // Fehler... cin.clear(); cin.ignore(numeric_limits<streamsize>::max(),'\n'); cout << "Nur Zahlen eingeben:"; }
|
sum war als eine art Ergebnis gedacht, aber habe nun selbst gemerkt das es auch ohne geht, char eingabe war nur falsch kopiert da ich kurz davor das Programm umgeschrieben habe um die Funktionen zu nutzen.
C++: |
while(eingabe); // wann wird eingabe == 0???
|
bin wie gesagt absoluter Anfänger... warum muss die eingabe 0 sein? hab doch bei den case auch default genutzt oder ist das falsch?
C++: |
double Meter=0.0, Fuss=0.0, Inch=0.0, Fahrenheit=0.0, // globale Variable => in c++ eine schlechte Idee
|
was daran ist eine schlechte Idee? Die Deklaration vor allen Funktionen schlecht und sie lieber einzelln in den Funktionen einfügen?
Die zweite Nachricht von dir hab ich absolut keinen Plan was das ist, soweit bin ich noch nicht sry.. aber danke für eure Mühe
So sieht es aktuell aus:
C++: |
#include <iostream> #include <limits> using namespace std;
double Meter=0.0, Fuss=0.0, Inch=0.0, Fahrenheit=0.0, Celsius=0.0, Knoten=0.0, kmh=0.0, Meile=0.0, Kilometer=0.0, Yard=0.0;
int func1() { cout << "\n************************\nBitte Meter eingeben: "; while(!(cin >> Meter)) { cin.clear(); cin.ignore(numeric_limits<streamsize>::max(),'\n'); cout << "Bitte nur Zahlen eingeben: "; } cout << Meter << " Meter = " << Meter * 3.28084; cout << " Fuss\n************************\n\n"; return 0;
}
int func2() { cout << "\n************************\nBitte Fuss eingeben: ";
while(!(cin >> Fuss)) { cin.clear(); cin.ignore(numeric_limits<streamsize>::max(),'\n'); cout << "Bitte nur Zahlen eingeben: "; } cout << Fuss << " Fuss = " << Fuss * 0.3048; cout << " Meter\n************************\n\n"; return 0; }
/* Funktionen 3-12 */
int funcm() { cout << "\n(q) oder (s) um das Programm zu schliessen.\n" << "\n(1) Meter in Fuss\t\t" << "(2) Fuss in Meter\n" << "(3) Meter in Inch/Zoll\t\t" << "(4) Inch/Zoll in Meter\n" << "(5) Meile in Kilometer\t\t" << "(6) Kilometer in Meile\n" << "(7) Knoten in Km/h\t\t" << "(8) Km/h in Knoten\n" << "(9) Fahrenheit in Celsius\t"<< "(0) Celsius in Fahrenheit\n" << "(a) Meter in Yard\t\t" << "(b) Yard in Meter\n\n"; }
int main() { char eingabe;
cout << "(q) oder (s) um das Programm zu schliessen.\n" << "(m) Um das Menue erneut anzuzeigen\n\n" << "\n(1) Meter in Fuss\t\t" << "(2) Fuss in Meter\n" << "(3) Meter in Inch/Zoll\t\t" << "(4) Inch/Zoll in Meter\n" << "(5) Meile in Kilometer\t\t" << "(6) Kilometer in Meile\n" << "(7) Knoten in Km/h\t\t" << "(8) Km/h in Knoten\n" << "(9) Fahrenheit in Celsius\t"<< "(0) Celsius in Fahrenheit\n" << "(a) Meter in Yard\t\t" << "(b) Yard in Meter\n\n";
do { cout << "Ihre Auswahl: "; cin >> eingabe; switch(eingabe)
{
case '1': { func1(); break; }
case '2': { func2(); break; }
/* case 3-12 */
case 'm': { funcm(); break; }
case 's': return 0; break;
case 'q': return 0; break;
default: cout << "Ungueltige Eingabe!\n";
}
} while(eingabe);
return 0; }
|
Dieser Post wurde am 07.01.2016 um 22:49 Uhr von JohnDoe editiert. |