Zahl als String einlesen.



  • Ich möchte aus Gründen der besseren Verarbeitung eine Zahl nicht als Int, sondern als String einlesen.
    Anschließend soll die Zahl überprüft werden, z.B. auf einen Minimum/Maximumwert, etc.

    Soweit mir bekannt ist, kann man dies indirekt durch die ASCII-Tabelle machen.
    Eine andere Möglichkeit, da bin ich mir aber nicht sicher, wäre eine Typumwandlung durchzuführen von string to int.

    Welche der beiden Möglichkeiten ist die bessere?


  • Mod

    Definiere "besser" in dieser Situation.



  • Hatte mal gelesen, daß man möglichst wenig Typumwandlungen durchführen soll.
    Andererseits ist die Verwendung eines String als Int unter Zuhilfenahme der ASCII-Tabelle wohl aufwendiger zu programmieren.

    Was die Performance anbetrifft, habe ich keine Ahnung.



  • redrew99 schrieb:

    Hatte mal gelesen, daß man möglichst wenig Typumwandlungen durchführen soll.
    Andererseits ist die Verwendung eines String als Int unter Zuhilfenahme der ASCII-Tabelle wohl aufwendiger zu programmieren.

    Was die Performance anbetrifft, habe ich keine Ahnung.

    Unter Typumwandlung versteht man nicht das Lesen oder Schreiben von Int.



  • redrew99 schrieb:

    Hatte mal gelesen, daß man möglichst wenig Typumwandlungen durchführen soll.

    Das mag innerhalb des Programms gelten, aber nicht dann, wenn Variablen von "außen" eingelesen werden, wo sie quasi immer als Zeichenkette reinkommen. Auch "cin >> i;" mit i als int macht nichts anderes als die Zeichen im Stream als int zu interpretieren. Einmal musst du es also machen. Die "lexikalische Typumwandlung" ist in der Hinsicht ein Sonderfall in Bezug auf die Faustregel mit den Typumwandlungen.


Log in to reply