7

我尝试了很多将字符转换为 Ascii 的解决方案。他们都有一个问题。

一种解决方案是:

char A;
int ValeurASCII = static_cast<int>(A);

但是VS提到static_cast是无效的类型转换!!!

PS:我的 A 始终是特殊字符之一(而不是数字)

4

3 回答 3

13

Achar是整数类型。当你写

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'
于 2013-03-19T17:32:03.997 回答
7

嗯,这有什么问题:

#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;
}
于 2013-03-19T16:46:50.243 回答
0

You can use chars as is as single byte integers.

于 2013-03-19T16:43:52.657 回答