2

我是 Windows 上的 C++ 新手。你能告诉我如何转换unsigned intTCHAR *

4

5 回答 5

5

通常的方法是使用swprintf将宽字符打印成a wchar_tTCHAR通常定义为)。

要将数字打印到 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_wstringifTCHAR定义为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);

请参阅此 MSDN 链接

于 2018-05-16T06:52:41.593 回答