清除stringstream缓冲区,重新进行转换工作
坑爹!技术还是要深入的查找api及文档的!今天在使用stringstream进行int转string
时,想重复利用stringstream进行转换,发现会把上一次内容和现转换内容拼接在一起,
根据以往经验只要重置或者清除上次内容就可以了,于是根据`.`提示出来的方法找到了
`clear()`,但是并没有什么卵用,经资料api显示,以下才是正确的使用方法:
stream.clear(); //这个名字让很多人想当然地认为它会清除流的内容。 实际上,它并不清空任何内容,它只是重置了流的状态标志而已!
stream.str(""); // 这样才是清空stringstream的缓冲,重复使用内存消耗也不再增加!
这样就明白了,在使用自己不熟练的方法或者类时还是不要轻易惯性思维来进行判断哦!用事情来说话!