C++设有语句cin>>hex>>a>>oct>>b>>dec>>c;若输入12,12,12cin执行后,为什么abc的值分

C++设有语句cin>>hex>>a>>oct>>b>>dec>>c;若输入12,12,12cin执行后,为什么abc的值分别为18,10,12?我知道12,12,12,... C++设有语句cin>>hex>>a>>oct>>b>>dec>>c;若输入12,12,12cin执行后,为什么abc的值分别为18,10,12?我知道12,12,12,转变成10进制是18,10,12!!cin>>hex>>a这条语句的意思是什么?
回答最好的另有加分相谢
展开
 我来答
锡永
推荐于2018-04-10 · TA获得超过419个赞
知道小有建树答主
回答量:58
采纳率:0%
帮助的人:89.5万
展开全部
hex 是16进制,oct是8进制,dec是10进制,你输入3个都是12.
16进制12转成10进制是18,8进制12转成10进制是10,10进制12转成10进制是12.
其实cin是一个对象,而>>是重载的操作符,你可以把>>理解为函数即cin.>>(hex),把hex作为参数。这样cin这个对象就设置里面的成员变量的值,让它接收输入时能按16进制输入,即把输入的12当成16进制的12.执行完后会返回cin的引用,知道引用吧,从反汇编看它是返回一个指针值,
就是指向cin自己,这样当再次用>>时又能调用cin.>>(a)连续用>>调用,能获得连续输入。
这次调用就是接收输入了。同样的道理,后面的也是这样。
wizeboy
2011-08-10 · TA获得超过316个赞
知道小有建树答主
回答量:255
采纳率:0%
帮助的人:123万
展开全部
hex是指16进制,也就是说,平常我们一位数只有1~9,但是16进制个位可以有15个数字,分别为1~9,A,B,C,D,E,F。
同样的,Oct是八进制,也就是说一个数必须用1~7这几个数字来表达,一旦遇到大于7的就立即进位。
DEC就是十进制,即正常数字。
补充阅览:
http://baike.baidu.com/view/15954.htm
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mozili1985
2011-08-11 · TA获得超过121个赞
知道答主
回答量:70
采纳率:0%
帮助的人:47万
展开全部
cin和cout的参数中可以有操作,例如hex、fixed、flush、endl、boolalpha。其中hex、fixed、boolalpha之类的会设置流的标志,使之后的操作使用指定的格式进行。而endl、flush这类则会对流进行操作,比如说输出换行和刷新流。
这些操作都是以流(ios_base)的引用为参数的函数。你只要将相应的函数通过输入/输出流,这个函数就会对流进行操作。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhykzhykzhyk
2011-08-10 · TA获得超过395个赞
知道答主
回答量:140
采纳率:100%
帮助的人:220万
展开全部
cin和cout的参数中可以有操作,例如hex、fixed、flush、endl、boolalpha。其中hex、fixed、boolalpha之类的会设置流的标志,使之后的操作使用指定的格式进行。而endl、flush这类则会对流进行操作,比如说输出换行和刷新流。
这些操作都是以流(ios_base)的引用为参数的函数。你只要将相应的函数通过输入/输出流,这个函数就会对流进行操作。
而hex操作会执行stream.setf(ios::hex, ios::basefield);
就是设置流使其之后在进行读写的时候以十六进制进行。
可以参考这里:http://cplusplus.com/reference/iostream/ios_base/setf/

参考资料: http://cplusplus.com/reference/iostream/

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式