C++ stringstream clear()和.str("")

来源:互联网 发布:明道办公软件官网 编辑:程序博客网 时间:2024/05/22 04:43

今天在使用stringstream时,遇到了第一次写入数据,之后再也无法写入的问题,期间调用了stringstream.str("")方法,但是无法正常输出到字符串,之后看到这篇博客

http://blog.csdn.net/jcq521045349/article/details/49888751才明白,还需要调用clear();

引用下面一段话:

stringstream常用来安全的格式化若干个字符串,数值到一个缓冲区, 而不用担心溢出, 可以用来取代snprintf. 但是很多人都在使用stringstream的时候遇到因为stringstream内部的缓冲区没有正确的清空导致的问题. 
那么把stringstream类内部的缓冲区正确的清空方式是什么呢? stringstream ss; 答案是: ss.str(“”) 
方法. 另外,如果需要把格式化后的字符串通过>>输出到字符串, 必须每次都调用clear()方法! 所以, 保险期间, 每次缓冲区格式化后, 
都通过clear(), str(“”) 两个函数都调用, 把stingstream类复位.

0 0
原创粉丝点击