fiverhythm 发表于 2019-12-25 18:51:32

关于cin.get只接受字符?

int       main()
{
        cout << " 请输入文本 " << endl;
        int p ;

        while ( cin.peek() != '\n')
        {
                p = cin.get();
                cout << p;
        }

        return 0;

}

我输入123,结果却是:495051
如果第四行p是char:char p
那么输入123,结果就是123,为什么呢?这个cin.get是只get字符?如果是数字也要定义为char才能get?

Tec 发表于 2019-12-25 19:27:01

本帖最后由 Tec 于 2019-12-25 19:34 编辑

cin.get()的返回值是int类型,为读取字符的ASCII码值
cin.get()每次读取一个字符,输入123,分别返回了1,2,3的ASCII码,49,50,51
把p定义为char类型后,读取到了1,2,3的ASCII码,输出char类型的时候把ASCII码转换为了1,2,3

fiverhythm 发表于 2019-12-25 19:58:45

Tec 发表于 2019-12-25 19:27
cin.get()的返回值是int类型,为读取字符的ASCII码值
cin.get()每次读取一个字符,输入123,分别返回了1,2 ...

非常感谢~~~~~{:7_112:}
页: [1]
查看完整版本: 关于cin.get只接受字符?