Stringstream extract integer

8

Warum kann ich keinen Integer-Wert in die Variable Num extrahieren?

%Vor%     
jackhab 12.02.2009, 12:19
quelle

4 Antworten

10

Wenn der Stream den letzten der 3 Digists "1 2 3" extrahiert, wird der eof-Status gesetzt. Dies wird nicht vom str () Mitglied gelöscht, Sie müssen es selbst tun. Ändern Sie Ihren Code in:

%Vor%     
anon 12.02.2009, 12:31
quelle
8

Warum lesen Sie in eine Variable temp string ?

Sie können einfach aus dem Stringstream in ein int ...

lesen %Vor%     
Assaf Lavie 12.02.2009 12:27
quelle
6

Sie müssen alle Statusflags (eofbit) zurücksetzen und den Stream in einen guten Zustand bringen (goodbit):

%Vor%

Der Grund dafür ist, dass Sie, wenn Sie bis zum Ende extrahieren, das Ende erreichen und das eof-Flag in diesem Stream gesetzt wird. Danach werden die Leseoperationen abgebrochen und Sie müssen das Flag wieder löschen. Wie auch immer, nachdem Sie die Zeichenfolge gelöscht und zurückgesetzt haben, können Sie weiter die Ganzzahlen extrahieren.

    
Johannes Schaub - litb 12.02.2009 12:22
quelle
2

STL! : P

%Vor%     
Logan Capaldo 12.02.2009 12:47
quelle

Tags und Links