想要分部分读取坐标文件怎么读?用for循环总是出现错误,求大神指教

ghvhvhbhvh 2019-12-04 04:00:38

如图,只需要读取小数数字,先从第三行读到第七行,然后再从第十行开始读到第n行,最终目的是在mfc里同时显示出国界线、省界线等轮廓

这是我写的代码,运行出来总是会读到屏幕左上角的点,应该是屏幕原点,接触c++很少,求能帮我详细解释一下
...全文
93 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
寻开心 2019-12-04
  • 打赏
  • 举报
回复
文本文件又不是二进制文件,无法准确定位啊,因为根本就无法确定第三行或者第几行在文件当中的准确位置
只好一行一行的读出然后扔掉不处理

fgets两次,然后扔掉它,之后再读取需要的数据来
kuangbao9 2019-12-04
  • 打赏
  • 举报
回复
i=3并不能让你读取到第三行的值,依然是第一行的,只不过是存储在points数组的第三元素里而已。因此points数组前两个存储的应该是它的默认值,有可能是0。i=10是同样的道理。 就本题而言,你倒是可以另外定义一个变量count=0,在while进来以后就,count++;然后判断是否小于3,若是直接continue; 同理,在判断 count 是否大于7小于10,若是直接continue,其他的照常处理好了。 大概这样: int count = 0; while(!feof(fp)) { count++; if(count<3) continue; for(i=0; i<5;i++) { //省略 } if(count > 7 && count <10) continue; for(i=5; i<1816;i++) { //省略 } } 另外,你可以全部读取完之后,在while循环外边画图以及fclose。
不闻窗外事 2019-12-04
  • 打赏
  • 举报
回复
最好的办法是一行一行的读,如果不需要,就过滤掉不要了,如果需要就处理

64,649

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧