我尝试了很多将char转换为Ascii的解决方案。他们都遇到了问题。
一个解决方案是:
char A;
int ValeurASCII = static_cast<int>(A);
但VS提到static_cast是无效的类型转换!!!
PS:我的A总是其中一个特殊字符(而不是数字)
答案 0 :(得分:13)
char
是一个整数类型。当你写
char ch = 'A';
您将ch
的值设置为编译器用于表示字符'A'
的任何数字。这些日子通常是'A'
的ASCII代码,但这不是必需的。你几乎肯定会使用一个使用ASCII的系统。
与任何数字类型一样,您可以使用普通数字对其进行初始化:
char ch = 13;
如果您想对char
值进行算术运算,请执行以下操作:ch = ch + 1;
等。
但是,为了显示值,您必须绕过iostreams库中的假设,将char
值显示为字符而不是数字。有几种方法可以做到这一点。
std::cout << +ch << '\n';
std::cout << int(ch) << '\n'
答案 1 :(得分:6)
#include <iostream>
using namespace std;
int main(int, char **)
{
char c = 'A';
int x = c; // Look ma! No cast!
cout << "The character '" << c << "' has an ASCII code of " << x << endl;
return 0;
}
答案 2 :(得分:0)
您可以将字符用作单字节整数。