Wie string löschen? [Duplikat]
-
27-09-2019 - |
Frage
Diese Frage bereits eine Antwort hier:
- Wie löschen Sie eine string Variable? 8 Antworten
stringstream parser;
parser << 5;
short top = 0;
parser >> top;
parser.str(""); //HERE I'M RESETTING parser
parser << 6; //DOESN'T PUT 6 INTO parser
short bottom = 0;
parser >> bottom;
Warum funktioniert es nicht?
Lösung
Normalerweise auf ‚Reset‘ ein string Sie beide müssen die zugrunde liegende Sequenz auf eine leere Zeichenfolge mit str
zurückgesetzt und alle fehlschlagen und EOF-Flags mit clear
zu löschen.
parser.str( std::string() );
parser.clear();
Normalerweise, was passiert, ist, dass die erste >>
das Ende des Strings erreicht und setzt die EOF-Bit, obwohl es erfolgreich die ersten kurzen analysiert. Operationen auf dem Strom danach sofort fehlschlagen, weil die EOF-Bit-Stream noch gesetzt ist.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow