将char转换为ASCII?

use*_*476 6 c++ visual-studio-2010

我已经尝试了很多解决方案来将char转换为Ascii.他们所有人都遇到了问题.

一个解决方案是:

char A;
int ValeurASCII = static_cast<int>(A);
Run Code Online (Sandbox Code Playgroud)

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

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

Pet*_*ker 13

A char是整数类型.当你写作

char ch = 'A';
Run Code Online (Sandbox Code Playgroud)

您将值设置为ch编译器用于表示字符的任何数字'A'.这通常是'A'这些天的ASCII代码,但这不是必需的.您几乎肯定会使用使用ASCII的系统.

与任何数字类型一样,您可以使用普通数字对其进行初始化:

char ch = 13;
Run Code Online (Sandbox Code Playgroud)

如果你想对char值进行算术运算,那就去做:ch = ch + 1;等等

但是,为了显示您必须绕过iostreams库中的假设,您希望将char值显示为字符而不是数字.有几种方法可以做到这一点.

std::cout << +ch << '\n';
std::cout << int(ch) << '\n'
Run Code Online (Sandbox Code Playgroud)


Nik*_*lis 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;
}
Run Code Online (Sandbox Code Playgroud)

  • @thinkquester**不**,那********.*casting*和*conversion*之间存在差异.强制转换是程序员所做的事情.没有"隐性演员". (7认同)

tom*_*tom -1

您可以按原样使用字符作为单字节整数。