C++中的转换问题(应为字符串)
Conversion problems in C++ (string expected)
我有一个我不能触摸的函数,它是一个"日志生成器",它把一些东西放在文件中打印,并在我运行文件时显示出来。问题是这个函数只得到const string
,所以如果我想打印一些东西,我必须转换这个数据类型中的所有内容(我不能使用cout(。
itoa&atoi函数不是标准函数,所以我也不能使用它。C++对数据类型非常"特殊",并且不接受非常容易的转换,所以这是我的问题:如何将所有类型的数据转换为字符串以用于日志目的?
也许我应该检查函数上的数据类型来转换内容,并将它们返回到stringstream
中(当然,我必须将其转换为字符串(。
那么,关于如何做到这一点,有什么建议吗?
boost::lexical_cast
封装了ostringstream
的使用,因此可以使用它。否则,代码就没那么难了:
template<typename T>
std::string
toString( T const& object )
{
std::ostringstream results;
results << object;
return results.str();
}
(这里没有理由使用stringstream
;ostringstream
在很大程度上就足够了。
您可以使用
- std::字符串流
或
- 提升词汇_列表<>
是的,如果您想要任意类型的字符串表示stringstream
中间听起来像是一个解决方案。
我假设函数需要一个常量std::string&
您使用std::stringstream的方法是正确的。或者,您可以简单地为要直接输出的类编写一个toString((方法。然而,通常当想要将对象输出到文件时,会重载<lt;该特定类型的运算符。
相关文章:
- setlocale的C++土耳其字符串问题
- C++字符串问题-如何访问字符串元素
- 提升,从字符串问题中获得时间
- 字符串问题中的系统( "command" ) 字符串
- 从文件和字符串问题中读取
- 将C++函数转换为 C#(字符串问题)
- 有关字符串C++问题
- Visual Studio和Xcode之间的Chaiscript字符串问题
- 回文字符串问题:为什么我必须放+1而不是-1才能让这个代码工作
- Dll导入Marshal C++字符串问题
- 崩溃:字符串问题
- 正在寻找另一种解决二进制字符串问题的尝试
- C++ Win32 是字符串问题
- 迭代器字符串问题
- Python 3:Python/C API字符串问题
- 带有空格的C++字符串问题
- 有些字符串问题
- C++11 std::regex_replace()创建带有特定字符串问题的regexp
- Turbo C++的字符串问题
- 棘手的子字符串问题