Vì tiêu đề cho biết tôi muốn biết cách tốt nhất để chuyển đổi một số int
thành const wchar_t*
. trong thực tế, tôi muốn sử dụng chức năng _tcscpy
Chuyển đổi int thành const wchar_t *
_tcscpy(m_reportFileName, myIntValue);
Vì tiêu đề cho biết tôi muốn biết cách tốt nhất để chuyển đổi một số int
thành const wchar_t*
. trong thực tế, tôi muốn sử dụng chức năng _tcscpy
Chuyển đổi int thành const wchar_t *
_tcscpy(m_reportFileName, myIntValue);
Vì bạn đang sử dụng một cách tiếp cận C (Tôi giả định rằng m_reportFileName
là một liệu C wchar_t
mảng), bạn có thể muốn xem xét chỉ swprintf_s()
trực tiếp:
#include <stdio.h> // for swprintf_s, wprintf
int main()
{
int myIntValue = 20;
wchar_t m_reportFileName[256];
swprintf_s(m_reportFileName, L"%d", myIntValue);
wprintf(L"%s\n", m_reportFileName);
}
Trong một hiện đại hơn Cách tiếp cận C++, bạn có thể xem xét sử dụng std::wstring
thay vì mảng wchar_t
thô và std::to_wstring
để chuyển đổi.
Đó không phải là "chuyển đổi". Đó là quy trình gồm hai bước:
Điều đầu tiên có thể được thực hiện bằng cách sử dụng ví dụ: StringCbPrintf()
, giả sử bạn đang xây dựng với các ký tự rộng được bật.
Tất nhiên, bạn có thể chọn định dạng chuỗi thẳng thành m_reportFileName
, loại bỏ sự cần thiết phải sao chép hoàn toàn.
Trong C++11
:
wstring value = to_wstring(100);
Pre- C++11
:
wostringtream wss;
wss << 100;
wstring value = wss.str();
Bình thường thợ đúc chư? Nhưng bạn nhớ rằng ký tự "cuối" _has_ bằng 0 hoặc bạn nhập vào lãnh thổ của hành vi không xác định. Điều này có nghĩa là 'int' của bạn chỉ có thể lưu trữ một ký tự (' int' là 32 bit trên Windows và 'wchar_t' là 16 bit). –
Tôi nghĩ (const wchar_t *) variable_name; nên làm việc. – haitaka
Chính xác bạn có ý nghĩa gì khi "chuyển đổi"? Chăm sóc để đưa ra một ví dụ? –