首页 > 编程知识 正文

python创建空字符串,完美日记口红c04

时间:2023-05-06 18:28:08 阅读:62261 作者:198

c字符串操作的std:ostringstream坑日记在开发过程中经常遇到字符串操作,但std:string没有格式操作很痛苦。 于是我找到了std:ostringstream类; ostringstream类的使用也很简单,是一种流操作。 头文件: include sstream示例: int number=14; 双数据=21.7; char* pstr='test '; std:ostringstream ostr; ostr '测试开始:“std:endl; ostr '整形数据为:' number std:endl; ostr '浮点数为:' ddata std:endl; ostr '字符串为:' pstr std:endl; std:cout ostr.str (); //str ) )以std:string的形式返回输出结果时会发生这种情况

测试开始:整形数据的14浮点数为:21.7字符串为:test,但发生了问题。 通常需要重用一个变量或对象。 那么,如何清除流中的数据? 一般的想法是clear ()。 因为在STL容器中,clear (习惯于用方法清空容器。 因此,所有第一个反应都是使用clear ()方法清除流中的数据。 试用酒精,ostr.clear (; 编译是不会错的(表明这种方法存在,我认为那是没错的,聪明的我很快就对了)。 int number=14; 双数据=21.7; char* pstr='test '; std:ostringstream ostr; ostr '测试开始:“std:endl; ostr.clear (; ostr '整形数据为:' number std:endl; ostr.clear (; ostr '浮点数为:' ddata std:endl; ostr.clear (; ostr '字符串为:' pstr std:endl; ostr.clear (; std:cout ostr.str (); //str ) )以std:string的形式返回,理论上输出应该是这样的

如果字符串为:test,则无论如何调用clear (),都无法清除ostr缓存中的数据。 输出结果如下。 开始测试。 整形数据显示,14浮点数为:21.7个字符串为:test,在STL的所有流中,clear的含义是清空错误标记。 不是清空容器。

坑被认为clear ()方法是清空内容,但实际上它消除了错误的标记。

那么,需要清空内容该怎么办?

必须使用voidstr(conststrings )方法,以向ostringstream注入新值。

例如:

int number=14; 双数据=21.7; char* pstr='test '; std:ostringstream ostr; ostr '测试开始:“std:endl; ostr.str (' ); ostr '整形数据为:' number std:endl; ostr.str (' ); ostr '浮点数为:' ddata std:endl; ostr.str (' ); ostr '字符串为:' pstr std:endl; ostr.str (' ); std:cout ostr.str (); //str ) )以std:string的形式返回输出结果。

字符串是:测试魔法吧。

同样,Ostr.str(「Hello”)将ostr的内容设置为“Hello”。 但是,Ostr.str(「Hello”); ostr“世界”运行结果将是“世界”而不是“帮助世界”。

相信很多猴子踩了这个洞吧!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。