如何获取您放入 ostream 对象中的最后一个字符
How to get the last charactor you put in an ostream object out
我在做编程工作,就像这样
vector<Member> members;
stringstream ss;
stringstream ss1;
for (vector<Member>::iterator it = members.begin; it != members.end(); it++){
ss << it->name << ",";
if (check(it->id)){
ss1 << it->name << ",";
}
}
所以,最后,会有一个我不需要的",",我想把它从ss中取出,怎么做,我知道我可以使用一些变量来控制它,但我认为直接操作ss会更方便这里一些朋友提供的方法无法处理SS1的情况,我该如何控制SS1的","。
有人可以告诉我为什么 ostream 不能返回任何数据,但 istream 可以放回数据
根据名称,ostream是一个输出流:它不是为了给你任何数据而设计的。
但是,即使这样做了,使用一个简单的条件,您的代码也会更干净:
vector<Member> members;
stringstream ss;
for (vector<Member>::iterator it = members.begin(); it != members.end(); it++) {
if (it != members.begin()) ss << ", ";
ss << it->name;
}
与其检查你是否在写最后一个元素,不如在每个下一个元素之前写第一个和分隔符:
vector<Member> members;
stringstream ss;
vector<Member>::iterator it = members.begin;
if(it != members.end()){
ss << it->name;
for (it++; it != members.end(); it++){
ss << ", " << it->name;
}
}
相关文章:
- 什么时候调用组成单元对象的析构函数
- 对RValue对象调用的LValue ref限定成员函数
- CMake-按正确顺序将项目与C运行时对象文件链接
- 空基优化子对象的地址
- 为什么常量词在重载运算符中不与 ostream 对象一起使用<<?
- 为什么重载运算符上的异常说明符'<<'不适用于任何 std::ostream 对象,但对库中定义的运算符不起作用?
- C++ ostream 从对象数组返回数据
- 如何跟踪写入std :: Ostream对象的字节数
- 使用 std::ostream 方法将格式化文本输出到 std::string 对象
- 如何获取您放入 ostream 对象中的最后一个字符
- 检查是否已写入给定的 ostream 对象
- 使用指针数组中的对象调用重载的友元 ostream 插入运算符将返回内存地址
- 重载 std::ostream 运算符<<未调用,stream 获取变量地址而不是对象
- 使用boost::python时,将python.io对象转换为std::ostream
- 对象文件中的ostream操作符发生了什么?
- 为什么即使我没有使用 ostream 对象,ostream 的 put 指针也会被修改
- 如何传递ostream对象
- 我可以使用FILE*来初始化c++ ostream对象吗?
- 关于临时ostream对象的c++问题
- 子对象的Ostream获取父对象的Ostream