c++,read函数问题

intlen;read((char*)&len,size(int)),我想问一下这四个字节,是怎么存在len中的?... int len;read((char*)&len,size(int)),我想问一下这四个字节,是怎么存在len中的? 展开
 我来答
GTA小鸡
高粉答主

2019-04-19 · 醉心答题,欢迎关注
知道大有可为答主
回答量:2.6万
采纳率:78%
帮助的人:1.3亿
展开全部
取决于CPU的字节序,如果是大端序则高位在低地址,低位在高地址;如果是小端序则高位在高地址,低位在低地址。
更多追问追答
追问
int A; 

while(fin.read((char*)&A,sizeof A)),这个while在什么情况退出循环(在读取到内容情况下)?还有是A指向内容,还是内容指向A
追答
fin是一个ifstream对象,当这个对象为假时,循环结束。流对象为假的条件是:eofbit、failbit和badbit中有任意一者为1。可能导致这些标志位被置为1的情况有:读到文件结束符、读取失败、流发生致命错误等。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
没有北海ck
2019-04-19 · TA获得超过3976个赞
知道大有可为答主
回答量:6579
采纳率:78%
帮助的人:262万
展开全部
当你输入2回车时,输入缓冲区中数据为2和回车,
cin>>a;从缓冲区中读出2,此时回车仍然在缓冲区中,
当你再次输入bcdefghaijklmnopqrst回车后,缓冲区为“回车bcdefghaijklmnopqrst回车”;
cin.get(p,10,'a');这一句命令会从缓冲区读取最多10个字符或者读取到字符'a'停止,所以这一句执行后p = 回车bcdefgh,缓冲区为”aijklmnopqrst回车“;
执行第9、10行的输出为:
2
(回车即\n,识别为一个空行)
bcdefgh
cin.read(p,4);从当前缓冲区读取4个字符(aijk)到p,而且会覆盖p初始的前4个字符(回车bcd),即,此时p = aijkefgh;缓冲区为lmnopqrst回车;
再次输出p即为输出:
aijkfgh
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式