C语⾔将int强制转换为string,C+中将int转换为String的最简单
⽅法
⼏年后,C+17与@v.oddou进⾏了讨论,终于提供了⼀种⽅法来完成最初基于宏的类型⽆关解决⽅案(保留在下⾯)。⽆经历了宏观的丑恶。// variadic templatetemplate std::string sstr( Args &&... args ){
std::ostringstream sstr;
// fold expression
( sstr <
c++中string的用法return sstr.str();}
⽤法:int i = 42;std::string s = sstr( "i is: ", i );puts( sstr( i ).c_str() );Foo x( 42 );
throw std::runtime_error( sstr( "Foo is '", x, "', i is ", i ) );
原⽂:
因为“转换.为字符串”是⼀个反复出现的问题,所以我总是定义SSTR()宏在我的C+源的中央标题中:
#include #define SSTR( x ) static_cast( \ ( std::ostringstream() <
使⽤⾮常容易:int i = 42;std::string s = SSTR( "i is: " <
:runtime_error( SSTR( "Foo is '" <
以上内容与C+98兼容(如果不能使⽤C+11)std::to_string),并且不需要任何第三⽅包含(如果不能使⽤Boost)。lexical_cast<>这两种解决⽅案都有更好的性能。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论