[英]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.