如何将TCHAR转换为int

时间:2016-10-06 14:12:25

标签: c++ windows

我想将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岁。

如何做到这一点?

2 个答案:

答案 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';可以使用。