[C++] Int und Double erkennen

B

Bgag

Guten Abend!

Momentan versuche ich einen gegebenen String in Tokens zu zerlegen. In diesem Zusammenhang ist es für mich wichtig einen Integer oder Doublewert am Anfang eines Stringstreams zu erkennen und in eine entsprechende Variable zu shiften.

Das Schreiben des Wertes in eine Variable ist eigentlich kein Problem. Die entsprechenden Methoden habe ich bereits implementiert, allerdings habe ich keine praktikable Idee, wie ich zwischen einem Integer und einem Double-Wert am Anfang des Strings unterscheiden könnte.

Würde mich über jede Anregung freuen.

Liebe Grüße,

Andreas

Implementation Double:
C++:
double parseDouble(std::string stream) {
   std::istringstream i(stream);
   double temp;
   
   if(i >> temp) {
    return temp;
   }
   
   return 0.0;
}
 
bool tryParseDouble(const std::string& stream) {
    std::istringstream i(stream);
    double temp;
    return ( (i >> temp) ? true : false );
}
 
Ich würde einfach prüfen, ob ein Punkt oder Komma im String bzw. direkt in der Zahl vorkommt.
Wenn ja dann Double nehmen, sonst Int.
 
Zurück