在我的代码中,有一个循环将“数字”之类的东西添加到字符串流中。当它结束时,如果要重复循环,我需要提取','添加'}'并添加'{'。
我以为我可以使用 ignore() 删除“,”,但它没有用。你知道我该怎么做吗?
示例:
douCoh << '{';
for(unsigned int i=0;i<dataSize;i++)
if(v[i].test) douCoh << i+1 << ',';
douCoh.get(); douCoh << '}';
最佳答案
您可以使用 stringstream::seekp
查找 stringstream
并返回 1 个字符。请注意,它不会删除最后一个字符,而只会移动写入头。在这种情况下这就足够了,因为我们用 }
覆盖最后一个字符。
douCoh << '{';
for(unsigned int i=0;i<dataSize;i++)
if(v[i].test) douCoh << i+1 << ',';
douCoh.seekp(-1,douCoh.cur); douCoh << '}';
关于c++ - 从 stringstream 中删除 char 并附加一些数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4546021/