当前位置:  开发笔记 > 编程语言 > 正文

如何在C++中从stringstream转换为字符串?

如何解决《如何在C++中从stringstream转换为字符串?》经验,为你挑选了4个好方法。

如何从C++ 转换std::stringstreamstd::string

我是否需要在字符串流上调用方法?



1> Tyler McHenr..:

yourStringStream.str()



2> Emil H..:

使用.str() - 方法:

管理底层字符串对象的内容.

1)返回基础字符串的副本,就像通过调用一样rdbuf()->str().

2)替换底层字符串的内容,就好像通过调用rdbuf()->str(new_str)...

笔记

由STR返回的基础字符串的副本,将在表达式的结尾被破坏,所以直接调用临时对象c_str()上的结果str()(例如,在auto *ptr = out.str().c_str();)在悬空指针结果...



3> hkBattousai..:

std::stringstream::str() 是你正在寻找的方法.

std::stringstream:

template 
std::string YourClass::NumericToString(const T & NumericValue)
{
    std::stringstream ss;
    ss << NumericValue;
    return ss.str();
}

std::stringstream是一个更通用的工具.您可以使用更专业的类std::ostringstream为此特定作业.

template 
std::string YourClass::NumericToString(const T & NumericValue)
{
    std::ostringstream oss;
    oss << NumericValue;
    return oss.str();
}

如果您正在使用std::wstring字符串类型,则必须更喜欢std::wstringstreamstd::wostringstream替代.

template 
std::wstring YourClass::NumericToString(const T & NumericValue)
{
    std::wostringstream woss;
    woss << NumericValue;
    return woss.str();
}

如果您希望字符串的字符类型可以在运行时选择,您还应该将其设置为模板变量.

template 
std::basic_string YourClass::NumericToString(const NumType & NumericValue)
{
    std::basic_ostringstream oss;
    oss << NumericValue;
    return oss.str();
}

对于上述所有方法,您必须包含以下两个头文件.

#include 
#include 

注意,NumericValue上面示例中的参数也可以分别作为std::string或与实例std::wstring一起使用.它不必是数值.std::ostringstreamstd::wostringstreamNumericValue



4> Timo Geusch..:

从内存中,您调用stringstream :: str()来获取std :: string值.

推荐阅读
mylvfamily
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有