简单的解决EOF多读取一行的问题
来源:互联网 发布:淘宝天弘基金找不到了 编辑:程序博客网 时间:2024/06/05 02:14
这个问题还是发生在VECTOR的应用过程中,我在用VECTOR进行数据读取时,发现多读了一行,虽然就目前我的小工具开发来言无上大雅,但是问题还是要解决,不然日后可能会成为一个大BUG也说不定呢。
首先,我还是问了度娘,我二姨夫还在我旁边煞有介事的看我解决问题的思路,我跟他说,百度!正在他不屑的时候,网页上直接弹出了解决EOF多读一行的问题哈哈,搜到了一位同行整理的这个问题的解决方法,看了一遍照做后发现没有起作用,可能是我没有理解透吧,最后还是二姨夫给我解决了,这个办法就更基础和接地气一点,小小的总结一下:
以下是我写的代码:
FILE *fp = fopen(path, "r");
vector<ZB*> vTemp;
while(!feof(fp))//如果不到文本末尾,循环执行操作,将坐标读入vector
{
ZB*obj = new ZB();
fscanf(fp,"%s %lf %lf", &obj->dd,&obj->xx, &obj->yy);
string strTemp = (obj->dd).c_str();
boolbFlag = strTemp.empty();
if(bFlag)
{
break;
}
vTemp.push_back(obj);
}
fclose(fp);
上文红色的部分是二姨夫给我加上的判断代码。之前没有加这几行的时候容器会把文档最后的换行给读进去产生一行错误数据,加上之后问题就迎刃而解了。第一句,stringstrTemp = (obj->dd).c_str();还是不知名原因造成的无法识别string类型,只好再转一下;第二句以及后面的判断的意思就是判断一下接下来读到的数据是否是空值,如果是空值,就停止读取。如此便轻松解决了多读取一行的问题,暂时不用花太多心思去研究EOF的问题了,但是后续都还是要搞明白的。
搜索到的EOF解决多读一行的原文:http://blog.csdn.net/woaisia/article/details/46441449
- 简单的解决EOF多读取一行的问题
- 关于文件读取的eof问题
- C++ fstream流的eof()函数多读一行的问题
- C++ fstream流的eof()函数多读一行的问题
- C++:fstream流的eof()函数多读一行的问题
- C++ fstream流的eof()函数多读一行的问题
- 简单的 六数码问题 终于解决了EOF的问题
- windows和linux在控制台下读取EOF的问题
- CEdit control 读取一行的问题
- c++文件读取最后一行读取两次的问题
- C# 读取Excel时读取不到第一行的问题。
- 解决Listview 只显示一行的问题
- 解决gridview只显示一行的问题
- 文件读取信息,eof()多读问题
- eof读取问题
- ifstream(一)之 eof() 函数——解决读取文件最后一个数据多读一次的方法
- 简单一行代码解决流读取导致StringBuilder.toString()乱码问题
- c++读取文件eof的疑惑
- Jupyter Notebook导出成pdf
- singleLine属性
- JavaScript文件获取与提交
- 文章标题fda
- iOS 动画篇----CAAnimation
- 简单的解决EOF多读取一行的问题
- Oracle SQL语句
- 选择排序算法(python实现)
- JNI:Java调用C函数打印hello,world
- 第2章 在HTML 中使用JavaScript
- Codeforces Round #421 (Div. 2) D. Mister B and PR Shifts
- 【C++心路历程29】严格次小生成树
- Base64编码源码
- Docker-hadoop的伪分布式和集群的搭建