Δοκιμάζα να μετρεψω ένα αριθμό double τον οποίο διάβαζα από ένα stream κατευθεάν μέσω του >> operator, αλλά δεν δούλευε πάντα. Όταν είχα μεγάλους αριθμούς δεν έγραφε τίποτα στο sample.
int sample;Δοκίμασα να το πάρω και να χρησιμοποιήσω το lexical_cast του boost και μου έριχνε exception!! Η λύση είναι πιό απλή. Το διαβάζω σε ένα double και κατόπιν (το κάνω casting σε double πχ χρησιμοποιώντας boost lexical cast) και στο τέλος χρησιμοποιώ casting με την int():
ss>>sample;
string str="31212.43343535";
double d_nr=lexical_cast<double>(str);
int nr=int(d_nr);
// nr = 31212

Δεν υπάρχουν σχόλια:
Δημοσίευση σχολίου