因为我们可以打印 ASCII 代码并在 C 中递增它 --> 例如:
{
char ch='A';
ch++;
printf("%d",ch);
}
这将在控制台上输出“66”。
这怎么能在 C++ 中完成?
printf
将像在 C++ 中那样工作。但是如果你想使用cout
,你只需要转换:
char ch = 'A';
ch++;
std::cout << static_cast<int>(ch);
是的,只需int
在输出之前将其转换为 an,这样它就不会被解释为字符:
char ch = 'A';
ch++;
std::cout << static_cast<int>(ch);
但是请注意,这并不能保证输出对应于字符的值'B'
。如果您的执行字符集是 ASCII 或其他一些健全的字符集,那么它将是,但标准不能保证您的执行字符集(除了数字字符之外,0
to 9
,具有连续值)。
无需演员表:
{
char ch='A';
ch++;
std::cout << ch << ": " << +ch << '\n';
}
它可以在 C++ 中以完全相同的方式完成:
{
char ch='A';
ch++;
printf("%d",ch);
}
接受 C 和 C++ 都不坚持编码为 ASCII 的事实(尽管它在台式计算机上无处不在),您提供的代码是有效的 C++。
在许多(尽管不是全部)方面,C++ 是 C 的超集。