我正在以通常的方式清除std::ostringstream ss;
for(...; ...; ...) {
... // Use ss.
if(some_condition_to_reset_stringstream) {
ss.str(std::string());
ss.clear();
}
... // Use ss some more.
}
:
std::hex
不幸的是,这并没有清除任何粘性操纵者(std::setfill
,std::stringstream
等)。
有没有办法重置整个public void WriteText() {
EditText txt=(EditText)findViewById(R.id.txtwrite);
try {
FileOutputStream fos = openFileOutput("D:/File.txt", Context.MODE_PRIVATE);
fos.write(txt.getText().toString().getBytes());
fos.close();
Toast.makeText(this, "Saved", Toast.LENGTH_LONG);
} catch (Exception e) {
Toast.makeText(this,e.getMessage(),Toast.LENGTH_LONG);
}
}
,包括任何IO操纵器?或者我是否必须单独手动重置每个操纵器(希望在此过程中不要忘记任何操作器)?
答案 0 :(得分:4)
显然在C ++ 11中应该可以交换字符串流:
TypeGeometry::~TypeGeometry() {
if (isMaster) delete VertexArray;
}
不幸的是我没有支持这个的编译器(g ++ 4.8.2),所以我无法测试这是否会清除粘性操纵器(我不明白为什么它不应该,一旦实现)。
仍在寻找替代方案,因为我的编译器不支持它:)