stringstream >> zu long?
-
Folgendes schlägt fehl (Werte werden nicht in die Variablen gestreamt):
string things = "1334935914467 213 21334 435643 456"; long i; double s; double f; double c; double h; stringstream into(things); into >> i >> s >> f >> c >> h; cout << i <<" "<< s <<" "<< f <<" "<< c;Folgendes geht:
string things = "133493 213 21334 435643 456"; long i; double s; double f; double c; double h; stringstream into(things); into >> i >> s >> f >> c >> h; //all are different types! cout << i <<" "<< s <<" "<< f <<" "<< c;Der Unterschied ist der erste Zahlenwert (1334935914467 vs 133493). Wie kann ich das Problem lösen ?
-
long long i;anstattlong i;benutzen: Also nein, mit long geht es nicht, 1334935914467 zu groß ist.
-
Unter Windows ist ein long nur 32bit groß, da passt die Zahl nicht rein. Nimm long long oder besser std::int64_t.
Auf Unixen ist ein long bei 64bit in der Regel auch 64bit groß.