Gibt es einen direkten Weg, Größe der internen Zeichenfolge in stringstream zu berechnen?Größe von stringstream
Hier gibt str()
eine Kopie zurück und dann erhält es die Größe der Zeichenfolge.
std::stringstream oss("String");
oss.str().size();
Gibt es einen direkten Weg, Größe der internen Zeichenfolge in stringstream zu berechnen?Größe von stringstream
Hier gibt str()
eine Kopie zurück und dann erhält es die Größe der Zeichenfolge.
std::stringstream oss("String");
oss.str().size();
std::stringstream oss("String");
oss.seekp(0, ios::end);
stringstream::pos_type offset = oss.tellp();
ist für den Schreibzeiger, aber das Ergebnis ist das gleiche für Lesezeiger auf Visual C++ v10.
Natürlich gibt es:
std::stringstream oss("Foo");
oss.seekg(0, ios::end);
int size = oss.tellg();
Jetzt Größe die Größe (in Bytes) enthält der Zeichenfolge.
EDIT:
Dies ist auch eine gute Idee, nach dem oben genannten Schnipsel zu setzen, wie es die internen Zeiger zurück an den Anfang der Zeichenfolge setzt. Diese
oss.seekg(0, ios::beg);
Interessant. Ich frage mich, ob dies immer das gleiche Ergebnis wie die Schreibzeiger-Äquivalente zeigt. –
Wenn Sie den Schreibzeiger verwenden, müssen Sie immer noch bis zum Ende suchen? Wäre es nicht immer am Ende? – Ferruccio
Gcc 4.4 scheint das nicht zu gefallen, es setzt den Stream failbit –