Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge

Wert in C++ speichern mit Dezimalstellenerzwingung

Sovebämse / 12 Antworten / Flachansicht Nickles

Hallo

Bin Programmieranfänger und erst mal bei den Basisdingen angelangt (d.h. noch keine Arrays, Klassen usw.).

Da ich aber gerne dann selber ausprobiere und mir Ziele setze, wollte ich mal ein Programm schreiben, welches erkennt, ob man eine Integer-Zahl eingegeben hat oder nicht.

Mit "cout" kann ich ja eine Ausgabe mit einer bestimmten Dezimalstellenanzahl erzwingen. Wenn also z.B. 2 eingegeben wird, wird 2.0 oder 2.00 angezeigt.

Ein Programm habe ich bereits schreiben können, welches Werte wie 2.5 als Nicht-Integer erkennt und eine 2 als Integer. Allerdings wird eine 2.0 auch als Integer bekannt, da anscheinend intern im Speicher, eine 2.0 als 2 dargestelt wird, auch wenn 2.0 eingegeben wird.

Frage: Gibt es eine Möglichkeit mit "cin" oder auf eine andere Weise, eine eingegebene Zahl auf eine solche Null-Dezimalstelle zu prüfen oder diese genau so abzuspeichern, wie sie eingetippt wurde, also nicht als 2, sondern 2.0? Ich möchte nämlich, dass auch diese als Nicht-Integer erkannt werden.

Bitte (wenn es geht) die einfachste Lösung. Falls es keine einfache Lösung gibt, werde ich wohl zuerst noch etwas weiterlernen müssen ;-)

Danke und Gruss
Thomas

bei Antwort benachrichtigen
Sovebämse xafford „ Hmmm, bist Du Dir sicher, dass das eine gute Idee ist? o Sicherer wär da:...“
Optionen

Habe es unterdessen geschafft, aber eben mit der Einschränkung, dass noch nicht erkannt wird, ob es wirklich eine Zahl ist und die Zahl wird auch noch nicht gespeichert (was aber das kleinere Problem sein wird).

Momentan kann ich halt mit cin.getline und anderen Befehlen noch nichts anfangen, mit Arrays auch noch nicht. Das Kapitel kommt aber als Nächstes in meinem Buch. Werde wohl mal noch etwas weiterlernen und mich dann wieder um diese Fragestellung kümmern.

Danke trotzdem allen für die Tipps.

Gruss
Thomas

bei Antwort benachrichtigen