(环境:Win7 64位, C++ builder 2010)
C/C++中使用std::stringstream使用频率较低,一般使用的是snprintf之类的函数。鉴于snprintf之类的函数可能会由于格式化不匹配导致异常出现,或者缓冲区溢出等等问题,std::stringstream还是有一定的优势的。
std::stringstream可以在各个类型间很方便的进行转换。需要注意的就是clear()函数并不是清除内容,只是修改内部状态标识;清空内容可以使用函数str()。示例代码如下:
#include <sstream>
int _tmain(int argc, _TCHAR* argv[])
{
std::stringstream strStream;
char szBuffer[32] = "abc123";
strStream << szBuffer;
printf("%s\n", strStream.str().c_str());
strStream.str("");
strStream << 100.123;
strStream.put('Q');
strStream << 200;
strStream.put('A');
printf("%s\n", strStream.str().c_str());
system("pause");
return 0;
}