鱼C论坛

 找回密码
 立即注册
查看: 1331|回复: 2

[已解决]关于cin.get只接受字符?

[复制链接]
发表于 2019-12-25 18:51:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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?
最佳答案
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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

非常感谢~~~~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-5 05:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表