
c++,read函数问题
intlen;read((char*)&len,size(int)),我想问一下这四个字节,是怎么存在len中的?...
int len;read((char*)&len,size(int)),我想问一下这四个字节,是怎么存在len中的?
展开
2个回答
展开全部
取决于CPU的字节序,如果是大端序则高位在低地址,低位在高地址;如果是小端序则高位在高地址,低位在低地址。
更多追问追答
追问
int A;
while(fin.read((char*)&A,sizeof A)),这个while在什么情况退出循环(在读取到内容情况下)?还有是A指向内容,还是内容指向A
追答
fin是一个ifstream对象,当这个对象为假时,循环结束。流对象为假的条件是:eofbit、failbit和badbit中有任意一者为1。可能导致这些标志位被置为1的情况有:读到文件结束符、读取失败、流发生致命错误等。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
当你输入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
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询