0

因为我们可以打印 ASCII 代码并在 C 中递增它 --> 例如:

{
char ch='A';
ch++;
printf("%d",ch); 
}

这将在控制台上输出“66”。

这怎么能在 C++ 中完成?

4

5 回答 5

4

printf将像在 C++ 中那样工作。但是如果你想使用cout,你只需要转换:

char ch = 'A';
ch++;
std::cout << static_cast<int>(ch);
于 2013-05-19T18:46:06.453 回答
4

是的,只需int在输出之前将其转换为 an,这样它就不会被解释为字符:

char ch = 'A';
ch++;
std::cout << static_cast<int>(ch);

但是请注意,这并不能保证输出对应于字符的值'B'。如果您的执行字符集是 ASCII 或其他一些健全的字符集,那么它将是,但标准不能保证您的执行字符集(除了数字字符之外,0to 9,具有连续值)。

于 2013-05-19T18:46:08.550 回答
4

无需演员表:

{
char ch='A';
ch++;
std::cout << ch << ": " << +ch << '\n';
}
于 2013-05-19T18:52:34.870 回答
2

它可以在 C++ 中以完全相同的方式完成:

{
char ch='A';
ch++;
printf("%d",ch); 
}
于 2013-05-19T19:30:01.037 回答
1

接受 C 和 C++ 都不坚持编码为 ASCII 的事实(尽管它在台式计算机上无处不在),您提供的代码是有效的 C++。

在许多(尽管不是全部)方面,C++ 是 C 的超集。

于 2013-05-19T18:46:10.163 回答