如何清除(字符串)流上的所有粘性操纵器?

时间:2015-07-01 09:37:01

标签: c++ iostream iomanip

我正在以通常的方式清除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::setfillstd::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操纵器?或者我是否必须单独手动重置每个操纵器(希望在此过程中不要忘记任何操作器)?

1 个答案:

答案 0 :(得分:4)

显然在C ++ 11中应该可以交换字符串流:

TypeGeometry::~TypeGeometry() {
    if (isMaster) delete VertexArray;
}

不幸的是我没有支持这个的编译器(g ++ 4.8.2),所以我无法测试这是否会清除粘性操纵器(我不明白为什么它不应该,一旦实现)。

仍在寻找替代方案,因为我的编译器不支持它:)