我是 Windows 上的 C++ 新手。你能告诉我如何转换unsigned int
成TCHAR *
?
问问题
12171 次
5 回答
5
通常的方法是使用swprintf
将宽字符打印成a wchar_t
(TCHAR
通常定义为)。
要将数字打印到 aTCHAR
中,您应该使用_stprintf
下面提到的@hvd(一怒之下)。这样,如果UNICODE
定义了,您将使用宽字符,如果UNICODE
未定义,您将使用 ASCII 字符。
int myInt = 400 ;
TCHAR buf[300] ; // where you put result
_stprintf( buf, TEXT( "Format string %d" ), myInt ) ;
于 2013-05-07T17:10:03.047 回答
1
也许您想将 a 转换unsigned int
为字符串。您可以使用std::to_wstring
ifTCHAR
定义为WCHAR
:
unsigned int x = 123;
std::wstring s = std::to_wstring(x);
然后转换s.c_str()
为TCHAR*
.
你也应该看看MultiByteToWideChar
.
于 2013-05-07T16:55:45.397 回答
0
您可以设置 TCHAR* 指向的位置。(可能是个坏主意……)
unsigned int ptr_loc = 0; // Obviously you need to change this.
TCHAR* mychar;
mychar = ptr_loc;
或者您可以设置指针指向的 TCHAR 的值。(这可能是你想要的。虽然记住 TCHAR 可能是 unicode 或 ansi,所以整数的含义可能会改变。)
unsigned int char_int = 65;
TCHAR* mychar = new TCHAR;
*mychar = char_int; // Will set char to 'A' in unicode.
于 2013-05-07T17:01:11.113 回答
0
我可能为时已晚,但即使在 Visual Studio 中,这个程序也可能会有所帮助
#include "stdafx.h"
#include <windows.h>
#include <tchar.h>
#include <strsafe.h>
#pragma comment(lib, "User32.lib")
int _tmain(int argc, TCHAR *argv[])
{
int num = 1234;
TCHAR word[MAX_PATH];
StringCchCopy(word, MAX_PATH, TEXT("0000"));
for(int i = 3; i >= 0 ;i--)
{
word[i] = num%10 + '0';
num /= 10;
}
_tprintf(TEXT("word is %s\n"), word);
return 0;
}
于 2015-12-27T15:50:15.350 回答
0
TCHAR buf[5];
memset(buf, 0, sizeof(buf));
return _itot_s(num, buf, 10);
于 2018-05-16T06:52:41.593 回答