Ergebnis 1 bis 20 von 27

Thema: Problem mit Namensräumen in C++

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    beruecksichtigt isdigit(char) eigentlich auch "." und "E" und "e" und "-" ?

    und selbst wenn, wuerde er nicht erkennen, dass "..." oder "1eee" keine Zahl ist.

    selbst wenn man die exponentendarstellung (1000 = 1E3) ausschliesst, hat man immer noch das problem des Typeoverflow .... der string kann ja schliesslich nahezu unendlich lang sein, der 32-bit Int ist ja schliesslich begrenzt ....

    Geändert von Ineluki (24.11.2004 um 22:27 Uhr)

  2. #2
    Zitat Zitat von Ineluki
    beruecksichtigt isdigit(char) eigentlich auch "." und "E" und "e" und "-" ?

    und selbst wenn, wuerde er nicht erkennen, dass "..." oder "1eee" keine Zahl ist.

    selbst wenn man die exponentendarstellung (1000 = 1E3) ausschliesst, hat man immer noch das problem des Typeoverflow .... der string kann ja schliesslich nahezu unendlich lang sein, der 32-bit Int ist ja schliesslich begrenzt ....
    In dem Fall würde ich sagen, daß man um die Konstruktion eines eigenen Parsers nicht herumkommt. Da C++ es nicht erlaubt, daß eine Integerfunktion etwas anderes als Ganzzahlen zurückgibt, kann man mit einer Funktion nicht arbeiten - vielleicht mit einer Prozedur.
    Sprich: Du übergibst drei Referenzen (auf den zu überprüfenden String, auf einen Integer und auf einen Boolean); die Prozedur liest dann den String aus und schreibt die erkannte Zahl in den Integer; falls der String keine Zahl enhtält wird der Boolean auf TRUE gesetzt und der Integer leergelassen. Das dürfte die einfachste Methode sein, in C++ einen String in einen Integer umzuwandeln und dabei Nichtzahlen als solche zu kennzechnen.
    Ist C++ nicht was Schönes?

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •