programing

C++에서 문자열 스트림에서 문자열로 변환하려면 어떻게 해야 합니까?

stoneblock 2023. 8. 2. 08:41

C++에서 문자열 스트림에서 문자열로 변환하려면 어떻게 해야 합니까?

변환 방법std::stringstream로.std::stringC++로?

문자열 스트림에서 메서드를 호출해야 합니까?

​​​​​​​

yourStringStream.str()

.str()-method를 사용합니다.

기본 문자열 개체의 내용을 관리합니다.

호출하는 것처럼 기본 문자열의 복사본을 반환합니다.rdbuf()->str().

호출하는 것처럼 기본 문자열의 내용을 바꿉니다.rdbuf()->str(new_str)...

메모들

str에 의해 반환된 기본 문자열의 복사본은 식의 끝에서 파괴될 임시 개체이므로 다음의 결과를 직접 호출합니다.str()(예:auto *ptr = out.str().c_str();) 포인터가 흔들립니다...

std::stringstream::str()찾고 있는 방법입니다.

와 함께std::stringstream:

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

std::stringstream는 보다 일반적인 도구입니다.보다 전문적인 클래스를 사용할 수 있습니다.std::ostringstream이 특정 직업을 위해.

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

작업하는 경우std::wstring문자열 유형, 선호해야 합니다.std::wstringstream또는std::wostringstream대신.

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

문자열의 문자 유형을 런타임에 선택할 수 있도록 하려면 문자열을 템플릿 변수로 만들어야 합니다.

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

위의 모든 방법에 대해 다음 두 개의 헤더 파일을 포함해야 합니다.

#include <string>
#include <sstream>

참고로, 그 주장은NumericValue위의 예들에서 또한 다음과 같이 전달될 수 있습니다.std::string또는std::wstring에 사용할std::ostringstream그리고.std::wostringstream각각의 예이는 다음을 위해 필요하지 않습니다.NumericValue숫자 값이 됩니다.

기억에서, 당신이 전화하면,stringstream::str()을 얻기 위해std::string값을 매기다

언급URL : https://stackoverflow.com/questions/662976/how-do-i-convert-from-stringstream-to-string-in-c