CSV Datei lesen, konvertieren



  • Hallo,

    ich muss eine CSV Datei einlesen was auch wunderbar klappt,
    dannach muss ich die einzelnen Felder die aus Strings bestehen nun
    in eine Matrix laden uas double Werten klappt auch wunderbar. Benutze die Funktionen fürs umwandeln wie strtod oder stod. Manche CSV Zellen sind jedoch leer oder es stehen buchstaben drin,
    erkennen tue ich das anhand des 2 parameters von strtod bzw stod anhand der Exception. Die neue Matrix besteht nur aus double irgendwie muss ich im double also erkenntlich machen dieses Feld war fehlerhaft.

    Meine Frage ist nun wie definiere ich genau diese Zelle die ja ein ungültiger String ist strtod liefert einfach 0 und dann wird das als 0 interpretiert obwohl das ein Fehler ist also markiere ich zurzeit diese fehlerhafte Zelle mit HUGE_VAL
    was haltet ihr von meiner Lösung ?
    habt ihr eine bessere Lösung ?

    Vielen Dank





  • ja ist aber ein float NAN dann würde ich jedoch die neue funktion nan("") benutzen die liefert mir ein QNAN was ein double ist



  • Du kannst ja konvertieren. Oder gleich std::numeric_limits<double>::quiet_NaN() verwenden.

    Du könntest übrigens auch direkt mit den C++-Streams aus der Datei einlesen und dann auf Fehlerflags prüfen, der Umweg über Strings ist nicht unbedingt nötig.


Log in to reply