basic_string_to_wstring

basic_string_to_wstring (숫자 값을 와이드 문자열로 변환하기)

이 페이지는 C++ 표준 라이브러리의 std::to_wstring 함수에 대해 설명해요. 이 함수는 정수나 부동소수점 숫자 값을 std::wstring으로 변환해 줘요. C++11부터 사용할 수 있고, 내부적으로 std::swprintf를 사용한 것과 동일하게 동작해요.

출처: cppreference

본문

개요

<string> 헤더에 정의되어 있어요.

<string> 헤더에 정의됨
std::wstring to_wstring(int value); (1) (since C++11)
std::wstring to_wstring(long value); (2) (since C++11)
std::wstring to_wstring(long long value); (3) (since C++11)
std::wstring to_wstring(unsigned value); (4) (since C++11)
std::wstring to_wstring(unsigned long value); (5) (since C++11)
std::wstring to_wstring(unsigned long long value); (6) (since C++11)
std::wstring to_wstring(float value); (7) (since C++11)
std::wstring to_wstring(double value); (8) (since C++11)
std::wstring to_wstring(long double value); (9) (since C++11)

숫자 값을 std::wstring으로 변환해요.

변환 규칙

buf는 변환 함수 내부에서 사용하는 버퍼이며, 변환 결과를 담기에 충분히 큰 크기예요.

C++26 이전:

  1. 부호 있는 십진 정수를 std::swprintf(buf, sz, L"%d", value)로 변환한 것과 같아요.
  2. 부호 있는 십진 정수를 std::swprintf(buf, sz, L"%ld", value)로 변환한 것과 같아요.
  3. 부호 있는 십진 정수를 std::swprintf(buf, sz, L"%lld", value)로 변환한 것과 같아요.
  4. 부호 없는 십진 정수를 std::swprintf(buf, sz, L"%u", value)로 변환한 것과 같아요.
  5. 부호 없는 십진 정수를 std::swprintf(buf, sz, L"%lu", value)로 변환한 것과 같아요.
  6. 부호 없는 십진 정수를 std::swprintf(buf, sz, L"%llu", value)로 변환한 것과 같아요. 7, 8. 부동소수점 값을 std::swprintf(buf, sz, L"%f", value)로 변환한 것과 같아요.
  7. 부동소수점 값을 std::swprintf(buf, sz, L"%Lf", value)로 변환한 것과 같아요.

C++26부터:

1-9. 숫자 값을 std::format(L"{}", value)를 사용한 것과 같이 와이드 문자열로 변환해요.

매개변수

매개변수 설명
value 변환할 숫자 값이에요.

반환값

변환된 값을 담은 와이드 문자열을 반환해요.

예외

std::wstring 생성자에서 std::bad_alloc 예외가 발생할 수 있어요.

예제

#include <iostream>
#include <string>

int main()
{
    for (const double f : {23.43, 1e-9, 1e40, 1e-40, 123456789.0})
        std::wcout << "std::wcout: " << f << '\n'
                   << "to_wstring: " << std::to_wstring(f) << "\n\n";
}

출력:

std::wcout: 23.43
to_wstring: 23.430000

std::wcout: 1e-09
to_wstring: 0.000000

std::wcout: 1e+40
to_wstring: 10000000000000000303786028427003666890752.000000

std::wcout: 1e-40
to_wstring: 0.000000

std::wcout: 1.23457e+08
to_wstring: 123456789.000000

같이 보기

to_string (C++11) 정수 또는 부동소수점 값을 string으로 변환해요 (함수)

더 알아보기 (Learn more)

cppreference