c++ - 从 stringstream 中删除 char 并附加一些数据

标签 c++ stringstream

在我的代码中,有一个循环将“数字”之类的东西添加到字符串流中。当它结束时,如果要重复循环,我需要提取','添加'}'并添加'{'。

我以为我可以使用 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/

相关文章:

c++ - 如何在 Windows 中创建全屏 OpenGL-ES 渲染 View ?

c++ - 为什么这段代码没有给出期望的输出?

c++ - 在 if 语句中使用 stringstream >> 运算符

C++ String to Int 使用 StringStream 不准确

c++ - 将内存池与需要对齐内存的 cpu 一起使用是个好主意吗?

c++ - 超高清 tx_waveforms

javascript - 如何将 JavaScript 中的字符串与 Geany 中的制表符和回车符连接起来?

c++ - 将 std::cout 重定向到自定义编写器

c++ - C++ 17 if语句带有初始化但无条件

c++ - Windows CPP InjectSyntheticPointerInput