解释整数作为输入时的输出

时间:2014-12-23 16:33:03

标签: c++

- 整数是输入时的解释输出

-why -47如果输入为5

,则递增该值
#include <iostream>
using namespace std;
int main() {

        string s;
        cin>>s;
        cout<<(*s.begin())-47;
    }
    return 0;
    }

1 个答案:

答案 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()产生字符本身。