我正在使用“使用 C++ 的编程原理和实践”这本书来学习编程,其中一个练习是使用 while 循环遍历字符 az。
现在,我以前用 C++ 和其他语言编程过,所以我决定尝试使用尽可能少的行(同时仍然使用 while 循环)。然而,这伴随着我的输出成本有点混乱。
代码:
#include <iostream>
int main(){
char ch = 'a';
while(ch <= 'z')
std::cout << ch << '\t' << (int) ch++ << std::endl;
return 0;
}
输出:
b 97
c 98
d 99
e 100
...
x 119
y 120
z 121
{ 122
现在我确实意识到这可以用 for 循环代替,我也这样做了(它有效)。但我仍然不明白这段代码有什么问题,这真的让我很烦。
看起来好像我已经告诉它输出“ch+1”,因为它在应该打印“a”的地方打印出“b”。直到 ch 的整数值被放入输出流(后增量)之后才完成增量。即使我早些时候增加了它,至少打印的字符和它们的整数值应该对应。
关于为什么此代码不起作用的任何想法?