简单的解决EOF多读取一行的问题
2017-07-04 11:18
351 查看
这个问题还是发生在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多读一行的问题哈哈,搜到了一位同行整理的这个问题的解决方法,看了一遍照做后发现没有起作用,可能是我没有理解透吧,最后还是二姨夫给我解决了,这个办法就更基础和接地气一点,小小的总结一下:
以下是我写的代码:
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
相关文章推荐
- 简单一行代码解决流读取导致StringBuilder.toString()乱码问题
- 简单的 六数码问题 终于解决了EOF的问题
- python读取CSV文件以及“写入CSV致文件每一行后面会多一个空行”问题解决
- Bash 解决while read line无法读取最后一行的问题
- 简单的解决了读取前判断TXT的编码问题……
- 简单的解决了读取前判断TXT的编码问题……
- 一行一行的读取txt中文文本(解决乱码问题)
- 换位思考权限设计(把复杂的问题,简单化才是水平,用简单的道理解决复杂的问题)
- 简单解决php编程当中mysql插入中文乱码问题
- 解决flexpaper读取本地文件问题,JAVA+TOMCAT
- AIR项目读取本地文档以及中文乱码问题的解决
- 双目视觉OpenCV嵌入式移植后XML读取问题及解决
- 解决输入框和按钮不在同一行的问题
- 解决本地HOSTS文件不读取问题
- 解决 IDEA 中src下xml等资源文件无法读取的问题
- Spring整合myBatis时无法读取placeholder的问题解决
- 简单方法解决Vista/Win7 无法接收WM_DROPFILES问题
- angularJs解决跨域问题-最简单的完美实例
- 简单内存泄漏检测方法 解决 Detected memory leaks! 问题
- 发布一个史上最简单代码最少Javascript Timer,解决一切定时执行的问题