#include<iostream>
#include<string>
#include<sstream>
using namespace std;
int main(){
stringstream ss;
ss << 32;
string str = ss.str();
cout << str << endl
<< str[0] << endl
<< str[1] <<endl
<< str[0]%10;
return 0;
}
输出结果为:
32
3
2
1
相反,最后一行应该是3,因为3%10 = 3。
答案 0 :(得分:5)
因为你将它与ascii值进行比较,它是51(0是48),modding给你1.你应该减去'0'或48,以便从汽车中获得实数。
答案 1 :(得分:3)
字符的表示形式与数字的表示形式不同。即使str[0]
处的字符为3,也是字符3,其ASCII码(即其数字表示)为51.由于字符可以在执行需要整数的操作时隐式转换为整数,因此代码正在执行{ {1}}是1。