我想将TCHAR转换为int,但是当我转换它时,我将ASCII值转换为int,而不是数值。
代码:
#include "stdafx.h"
#include <Windows.h>
#include <iostream>
#include <string>
using namespace std;
int converttoint()
{
TCHAR tchar[2];
wcscpy_s(tchar, TEXT("5"));
int i = tchar[0];
cout << i << endl;
return i;
}
int main(int argc, _TCHAR* argv[])
{
converttoint();
string in;
cin >> in;
}
Output: 53
但我希望自己成为5岁。
如何做到这一点?
答案 0 :(得分:4)
如果要将字符串(包含整数)转换为int
,可以使用某些C函数,例如atoi()
(用于char
ANSI字符串)或{{1} }(对于_wtoi()
Unicode UTF-16字符串),或其他将区域设置作为附加输入参数的内容:您可以在this MSDN documentation上阅读更多内容。
如果要使用TCHAR模型,则相应的函数为wchar_t
或_tstoi()
,如上述MSDN文档页面中所述。
答案 1 :(得分:1)
你可以用旧学校的方式做到并取'0',这可行,因为数字将被排序,以ascii为例,53是'5'的十进制值,48是'0'的十进制值,所以采用我们的隐式转换值,(53-48)等于5的十进制值。例如:
int i = tchar[0] - '0';
可以使用。