#include "stdafx.h"
#include <string>
#include <strstream>
#include <iomanip>
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
std::string strTableID;
std::ostrstream ssBuf;
ssBuf << 1;
ssBuf << ends;
strTableID = ssBuf.str();
ssBuf.clear();
ssBuf.flush();
cout << strTableID << endl;
ssBuf << 2;
ssBuf << ends;
strTableID = ssBuf.str();
ssBuf.flush();
ssBuf.clear();
cout << strTableID << endl;
return 0;
}
Почему выдает
1
1
а не
1
2
?
Здравствуйте, Gatwick, Вы писали:
G> G> std::ostrstream ssBuf;
G> ssBuf.clear();
G> ssBuf.flush();
G>
Это не является кодом, "очищающим" std::ostrstream. Вместо этого лучше использовать:
ssBuf.clear();
ssBuf.str(std::string());
Posted via RSDN NNTP Server 1.7 "Bedlam"
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Здравствуйте, Павел Кузнецов, Вы писали:
ПК>Здравствуйте, Gatwick, Вы писали:
G>> G>> std::ostrstream ssBuf;
G>> ssBuf.clear();
G>> ssBuf.flush();
G>>
ПК>Это не является кодом, "очищающим" std::ostrstream. Вместо этого лучше использовать:
ПК>ПК>ssBuf.clear();
ПК>ssBuf.str(std::string());
ПК>
а еще лучше:
ssBuf.freeze(0);
а совсем хорошо —
ostringstream пользовать.
Serge.
Hасколько проще была бы жизнь, если бы она была в исходниках.
Здравствуйте, Sergeem, Вы писали:
ПК>> Это не является кодом, "очищающим" std::ostrstream. Вместо этого
ПК>> лучше использовать:
ПК>> ПК>> ssBuf.clear();
ПК>> ssBuf.str(std::string());
ПК>>
S> а еще лучше:
S> ssBuf.freeze(0);
S> а совсем хорошо — ostringstream пользовать.
LOL даже не заметил, что в коде динозавр...
Posted via RSDN NNTP Server 1.7 "Bedlam"
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен