簡體   English   中英

如何將 TCHAR 轉換為 int

[英]How do I convert TCHAR to int

我想將 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。

如何才能做到這一點?

如果要將字符串(包含整數)轉換為int ,可以使用一些 C 函數,如atoi() (用於char ANSI 字符串)或_wtoi() (用於wchar_t Unicode UTF-16 字符串),或其他采用語言環境作為附加輸入參數:您可以在此 MSDN 文檔中閱讀更多內容

如果要使用 TCHAR 模型,則相應的函數是_tstoi()_ttoi() ,如上述 MSDN 文檔頁面中所述。

你可以用老式的方法來取'0',這是因為數字將被排序,以ascii為例,53是'5'的十進制值,48是'0'的十進制值,所以取我們隱式轉換的值,(53-48) 等於十進制值 5。類似於: int i = tchar[0] - '0'; 將工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM