【发布时间】:2020-11-17 02:00:58
【问题描述】:
我是 C++ 的初学者,如果我在这里犯了一个愚蠢的错误,请原谅我。
我想在下面的代码中循环一串整数:
#include <string>
using namespace std;
int main() {
string str = "12345";
for (int i : str) {
cout << i << endl;
}
return 0;
}
但我收到了输出:
49
50
51
52
53
我知道如果我使用 char 而不是 int,我会得到正常的输出,但为什么我会收到比应有的多 48 的整数输出?
【问题讨论】:
-
您会看到字符的 ASCII 值。见asciitable.com
-
尝试使用 char 而不是 int。
-
这个经验的一个有用的收获是你可以减去
'0'的值(在 ASCII 的情况下是 48,但你几乎总是使用'0'更好,因为它更容易从数字中读取)字符,您将获得该数字的数值。 -
您的字符串不包含
ints。它拥有chars。