• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

c++中basic_istream::getline()的返回值何时为真

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

今天在看primer,17ch中的IO库再探,做课后练习,要求用ifstream.getline(char*, const unsigned, char)读取一个文件,用循环:

while(ifs.getline(str,10,'\n'))

来读取文件,但while的判断条件一直为假,也就是说ifs.getline((str,10,'\n'))读文件的第一行的9个字符后就将ifs置为了badbit了,条件进一步判断为false。

 

经过反复验证与查相关资料后,发现,basic_istream::getline(char* s, const unsigned size, char delim)只有读到行末,或读到字符delim返回时并返回值才为真。其他情况返回都会被视为false。

但basic_istream::getline(char* s, const unsigned size, char delim)会一直读入数据,直到下面的条件之一发生:

a.已读取了size-1个字符

b.遇到了文件尾

c.遇到了分隔符


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C/C++的const区别发布时间:2022-07-13
下一篇:
C#笔记(十)——类的应用——打僵尸作业发布时间:2022-07-13
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap