将char转换为ASCII?

时间:2013-03-19 16:40:09

标签: c++ visual-studio-2010

我尝试了很多将char转换为Ascii的解决方案。他们都遇到了问题。

一个解决方案是:

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

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

PS:我的A总是其中一个特殊字符(而不是数字)

3 个答案:

答案 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)

您可以将字符用作单字节整数。