C++逐行读取文本文件的正确做法
来源:互联网 发布:java 多用户 博客 编辑:程序博客网 时间:2024/04/29 21:22
作者:朱金灿
来源:http://blog.csdn.net/clever101
之前写了一个分析huson日志的控制台程序,其中涉及到C++逐行读取文本文件的做法,代码是这样写的:
- ifstream file;
- file.open(“C:\\hudson.log”);
- char szbuff[1024] = {0};
- while(!file.eof())
- {
- file.getline(szbuff,1024);
- }
开始这段代码运行是没有问题的,但后来运行居然出现了死循环,上网查了下资料,发现原因是:当缓冲区不够大的时候,getline函数也会对缓冲区输入数据,但同时也会把ifstream的状态位failbit设置了,于是fail函数会返回true。于是上述代码会嵌入死循环,由于处于fail状态下的ifstream,其getline函数不会再读入任何数据,因此后续的getline调用没有效果,并且fail函数一直返回true。
正确的做法是:
- #include <iostream>
- #include <fstream>
- #include <string>
- using namespace std;
- int main()
- {
- char *filePath = "E:\\test.txt";
- ifstream file;
- file.open(filePath,ios::in);
- if(!file.is_open())
- return 0;
- std::string strLine;
- while(getline(file,strLine))
- {
- if(strLine.empty())
- continue;
- cout<<strLine <<endl;
- }
- }
参考文献:
1. getline的获取ifstream的数据
阅读全文
0 0
- C++逐行读取文本文件的正确做法
- C++逐行读取文本文件的正确做法
- C/C++逐行读取文本文件的数据
- c++中读取文本文件单行数据的正确做法
- 关于C语言中文本文件的逐行读取的实现
- C文件操作示例:逐行读取文本文件
- VB读取文本文件的例子:逐行读取
- 逐行读取文本文件的 shell 脚本
- 逐行读取文本文件
- J2ME逐行读取文本文件
- 如何逐行读取文本文件
- vc逐行读取文本文件
- C++ 逐行读取文本文件
- C++逐行读取文本文件
- 如何利用C/C++逐行读取txt文件中的字符串(可以顺便实现文本文件的复制)
- 如何利用C/C++逐行读取txt文件中的字符串(可以顺便实现文本文件的复制)
- 如何利用C/C++逐行读取txt文件中的字符串(可以顺便实现文本文件的复制)
- 如何利用C/C++逐行读取txt文件中的字符串(可以顺便实现文本文件的复制)
- richedit 输入法输入表情出现黑色背景的解决办法
- JMS(二)--ActiveMQ简单的HelloWorld实例
- chapter2 线性组合,张成的空间,与基
- 关于微信公众号开发调用jssdk接口以及腾讯地图API
- Xmodmap用法
- C++逐行读取文本文件的正确做法
- myeclipse ant运行后javac报找不到的包的错误
- arcgis求助
- 笔记 npm是什么?
- SparkSQL ThriftServer配置及连接测试
- 排列序号II
- 谈及未来的 AI, 也许你已身处其中 —— 记 InfoQ 对青云QingCloud 联合创始人林源的采访
- Java之IO流总结
- Python3.x 数据结构