如何为ostringstream对象追加数据? Assumingly:设置ostringstream自动追加
ostringstream oss;
oss << '0x11';
如何设置执行自动从最后已知的元素oss << 0x22
?我通读了我需要设置一些标志,但我该怎么做?
编辑:对这个问题非常含糊不清。那些咖啡正在磨损。从我上面的问题扩展:
ostringstream oss(osstringstream::app)
它设置为每次追加?我的目标是创建一个字符串。
如何为ostringstream对象追加数据? Assumingly:设置ostringstream自动追加
ostringstream oss;
oss << '0x11';
如何设置执行自动从最后已知的元素oss << 0x22
?我通读了我需要设置一些标志,但我该怎么做?
编辑:对这个问题非常含糊不清。那些咖啡正在磨损。从我上面的问题扩展:
ostringstream oss(osstringstream::app)
它设置为每次追加?我的目标是创建一个字符串。
当传递给 ostringstream
构造函数时,没有指定app
标志的作用。此标志仅与 ofstream
有关。另一方面,ostringstream
是流, 并且因此,如果在此期间没有发现搜索,则在先前的插入数据之后总是插入数据。毕竟,这是输出流的定义。
这就是ate
和app
之间的区别作为开放模式。 ate
位置在打开后的末尾,然后单独离开写入位置(所以如果你需要它,你可以在任何地方写入),app
确保所有的写入都在流结束时完成。
编辑:实际上,stringstream的行为不同,所以不要依赖它。
除'ate'和'ape'只与'filebuf'和'[oi] fstream'有关外。它们是'open'的参数,并且没有'stringbuf'的定义。 (形式上,我认为传递它们将是未定义的行为,因为标准没有为它们指定语义。) – 2011-05-18 12:48:01
@詹姆斯,你有参考吗?这是我的,但没有发现任何说明,吃和猿只与filebuf有关。它们被用于open()的描述中,以便为fopen提供等价的参数,但是它们在ios_base中的描述不需要针对字符串流进行扩展,而不再是对seekdir或iostate的描述。 – AProgrammer 2011-05-18 13:02:13
它们的完整语义在'filebuf'中描述; 'stringbuf'只描述'in'和'out'的效果。但是你可能有一个观点:'openmode'描述中的表格确实总结了一个语义。但是,如果这适用,'trunc'对'streambuf'意味着什么?或'二进制'?我认为这个问题对我来说是足够开放的,可以提交一份DR。 – 2011-05-18 13:18:03
当您在第一个示例中创建stringstream
时,它将默认附加。
我不明白。流总是附加。你想达到什么目的? – 2011-05-18 11:24:25
它与C-tag有什么关系? – cpx 2011-05-18 11:31:23
将标签更改为“ostringstream”与c无关c – mkaes 2011-05-18 11:33:19