- 整数是输入时的解释输出
-why -47如果输入为5
,则递增该值#include <iostream>
using namespace std;
int main() {
string s;
cin>>s;
cout<<(*s.begin())-47;
}
return 0;
}
答案 0 :(得分:5)
在ASCII字符2中有代码50.因此50 - 47将导致3。 因此,如果在声明中
cin>>s;
你已经过了2次
然后在声明中
cout<<(*s.begin())-47;
由于整数提升,等同于*s.begin()-47
的表达式'2' - 47
将转换为int
类型,并且等于3('2' - 47 =&gt; 50 - 47 = = 3)。
考虑到调用s.begin()
返回指向字符串第一个字符的迭代器,*s.begin()
产生字符本身。