如何解决getline读取文件失败
来源:网络收集 点击: 时间:2024-02-12【导读】:
工作中,使用C++的读写文件库fstream, 例如通过ifstream的getline函数读取文本的信息的时候会出现死循环导致程序挂死,当出现这种情况,应该如何解决呢?下面小编就说明下解决办法以及注意的事项!方法/步骤1/7分步阅读
2/7
3/7
4/7
5/7
6/7
7/7
注意事项
工程目录下创建文本文件resource\\test.txt, 并输入如下内容

工程主函数输入如下代码段,功能是从文本文件读取信息,并显示到窗口终端上

输入完成代码之后,运行的结果如下所示, 文本文件的信息都正常显示出来

文本文件再加入一行信息,其内容超过代码中acbuf定义的长度,运行之后程序直接卡死

这里提供两种解决办法,一种办法如下所示,ifs.getline调用good判断,如果异常直接退出

输入完成上面的代码段之后,程序运行的结果如下所示

另一种方法是扩大acbuf的大小,扩大之后,程序运行结果如下所示,所有信息都能够显示出来,但是这个方法的缺陷是当读取到的信息又大于数组的大小的时候,程序又会卡死。所以,最好的方法是将两种方法结合起来,既扩大缓存,又添加异常判断条件。

喜欢经验欢迎点赞!
使用ifs.getline(acbuf, sizeof(acbuf)-1).good()解决问题的时候,文本文件最后需要留一个空行,否则可能会导致正常读取数据的时候,无法读取到最后一行数据
GETLINE读取失败程序死循环解决办法版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、文章链接:http://www.1haoku.cn/art_27187.html
上一篇:网易账号怎么注销
下一篇:如何取消微信视频号里给他人点过的赞