C++ int-oder double-input

Ich bin auf der Suche, um aufzuräumen einige bereits funktionierenden code, den ich habe. Zuerst von allen, ist dies für eine Zuordnung und die Zuordnung gibt an, ints genommen werden muss, wie ints, doubles als verdoppelt, etc, sonst könnte ich einfach den Eingang als Doppel-und cast als int -if(number%1==0).

Habe ich getrimmt Sie den code unten, um nur die Handhabung der Eingabe (mit einer output-Anweisung, um sicherzustellen, es richtig funktioniert).

int wholePart=0;
double decimalPart=0;
cout << "Input a number: ";
cin >> wholePart;
if(cin.peek() != '\n')
    cin >> decimalPart;

cout << "wholePart = " << wholePart << endl << "decimalPart = " << decimalPart << endl;

Nun... das funktioniert wie es ist, und nach füge ich den code hinzu, um zu behandeln, kombiniert die ganze Zahl und dezimal wenn die decimalPart ist nicht 0, dann habe ich schon mehr getan, als die Zuordnung fordert, aber ich bin auf der Suche, um zu lernen, und ich will reinigen Sie diesen code so viel wie möglich.

Kann ich wickeln Sie den gesamten input-Bereich mit anderen input-Validierung um sicherzustellen, dass der Benutzer tatsächlich die Eingabe von zahlen und nicht in Zeichen. Aber mein Hauptanliegen hier ist, dass if(cin.peek() != '\n') ist nicht gut genug. Vielleicht if(cin.peek() == '.') ist eine bessere option, aber ich bin neugierig, was wäre der beste Weg zu gehen über das vollbringen, was ich versuche zu erreichen, hier. Irgendwelche Ideen?

Und bitte nicht nur diese nach unten, wie "oh, es ist Hausaufgabe." Ich möchte betonen, dass mein Programm geht schon über das hinaus, was auch das extra-Guthaben Teil der Hausaufgaben fragt. Ich versuche nur zu lernen, mehr über die Sprache und, was der beste Weg für die Bearbeitung dieser Art von input sein könnte.

InformationsquelleAutor nhgrif | 2013-09-25

Schreibe einen Kommentar