c++-请问C++里面如何用类似next( )的方法调用文件的每一行数据

问题描述

请问C++里面如何用类似next( )的方法调用文件的每一行数据

我知道如何用 getline 读取每一行数据,但是,我现在想要先读完整个文件,然后在另外一个method中通过类似next( ) 的方法把那个文件中的下一行调用出来
比如说,我现在有一个文件有1000行,每行两个数字。我想在一个update( )方法中每次调用下一行的数据(只调用一行),但是这个文件本身在另外一个
method中读取(因为如果也在update( )中读取的话每次就重新来过了),请问这个如何实现呢?

解决方案

文件比较小,开个缓存以下,数据全取出
然后采取,全局变量,(这个是C的方法,因为C 没有隐含参数,只能传递参数,或者通过全局变量来处理)
或者类似全局变量的办法(定义一个类,update() 编写为类的方法,用一个变量记录当前行数等状态,并在使用 这个类的程序里面,定义一个该类的对象)
文件大,可以开小一点的缓冲,先储存一部分数据,需要时把其它数据调入内存

解决方案二:

char* fbuffer = new char[filesize]

解决方案三:

这个属于迭代器模式
参考:
http://www.cnblogs.com/onlycxue/archive/2013/12/25/3490738.html

迭代器内部维护一个文件指针即可。

解决方案四:

用个容器来读文件吧,一下全部读完,以行为单位的放在容器中。
然后对容器进行处理。

时间: 2024-12-29 18:06:52

c++-请问C++里面如何用类似next( )的方法调用文件的每一行数据的相关文章

请问大家:如何用deepearth加载百度瓦片地图?

问题描述 请问大家:如何用deepearth加载百度瓦片地图? 大家好:我想在deepearth中加载百度瓦片地图,但那个x,y和z的转换一直没弄出来.特向您请教.谢谢了. google地图加载没问题,这是加载google地图的算法片段: //Tile System映射地址 map.BaseLayer.Source = new BmTileSource("http://khm{0}.google.com/kh/v=47&x={1}&y={2}&z={3}");

请问大家谁知道如何用j2me 实现PIM 备份和还原联系人?

问题描述 请问大家谁知道如何用j2me实现PIM备份和还原联系人? 解决方案 解决方案二:没做过,但有点小思路,通过读取PIM中的联系人信息,将其通过RMS保存起来,还原的话就是将RMS中的信息读取解析出来解决方案三:使用JSR75读取和写入

C++ 类,如何用类似字符串的东西定义一个数据成员?

问题描述 C++ 类,如何用类似字符串的东西定义一个数据成员? 题目:设计一个书类,能够保存书名.定价,所有书的本数和总价. 为了实现这一要求,可以将书名.定价设计为普通数据成员,将书的本数和总价设计为静态数据成员.(如何实现题目中的书名?) 如: class book{ public: book()//构造函数,怎样定义一个名字 void show()://cout名字 private: //怎样定义一个名字 } void main{ book a();//对象a,输入一个名字: } 求各位赐

新手 请求帮忙解答-请问下,如何用Java读取 一个txt文件(txt文件是一个数字矩阵)``````

问题描述 请问下,如何用Java读取 一个txt文件(txt文件是一个数字矩阵)`````` 请问下,如何用Java读取 一个txt文件(txt文件是一个数字矩阵).把每列的数据合成一大列输出,意思就是把第二列的数据放在第一列的末尾,第三列放在第二列的末尾````` 多谢了. 解决方案 太麻烦 说下思路,你看一下行不行, 1>.把每一行都放到一个数组里 ,可以用缓冲流读取一行, 2>.然后按矩阵的分割部分的字符 来分割这一行的字符串 拿到每个数组项, 3>.根据每个数组的下标,可以拿到

计算机-请问这道题如何用伪代码解决

问题描述 请问这道题如何用伪代码解决 从键盘输入一串字符,遇到连续三个'?'字符时结束输入.统计其中字母(不区分大小写字母)的个数.数字字符的个数和其他字符的个数. 解决方案 char ch[100]; int i = 0; int a,b,c; a=b=c=0; while (true) { ch[i++] = getchar(); if (i >= 3 && (ch[i-3]=='?' && ch[i-2]=='?' && ch[i-1]=='?'

前端-如何使用类似Git的方法更新个人网站的代码?

问题描述 如何使用类似Git的方法更新个人网站的代码? 我建了一个个人博客 ,独立域名的,我经常修改代码,怎样才可以想github 那样只更新我修改的代码.因为不会搞,每次都全部上传一次,觉得很费时.不太想使用github pages,我想试试自己搞网站.听说可以在服务器上 安装git,我百度一遍也没有找到相应的教程,请问各位有什么好的解决方案吗? 解决方案 请问我的问题怎么没有了 解决方案二: 可以使用FileZila Client,上传代码的时候,只覆盖修改过的,还有就是,可以直接编辑服务器

windows-如何用Java扫描Windows下的文件夹?

问题描述 如何用Java扫描Windows下的文件夹? 如何用Java扫描Windows下的文件夹以及文件夹下面的文件 解决方案 import java.io.File;/** * *自动扫描文件夹下的文件 *用途:自动扫描脚本输入路径,输出要执行的sql导入数据库: */public class OutSql { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method

如何用CZip/CUnzip类压缩/解压缩文件

本文介绍如何用CZip/CUnzip类压缩/解压缩文件,这个类使用gzip GNU源代码(gzip-1.2.4a).这是个免费软件,在GUN通用公共许可证(General Public License)条款下可以分发及修改此软件,关于这个通用公共许可证的详细条款请参考: http://www.vckbase.com/vckbase/uniondocs/gungpl.htm 目标动态库输出两个类: CZip(用于压缩文件) CUnzip (用于解压缩文件) 首先用文件名建立CZip 或 CUnzi

windows7下如何用CMD命令复制和删除文件夹?

  有时候有些顽固的文件或者文件夹我们总是让你删除不掉,不要着急其实Win7系统自带的CMD命令就可以很好的解决这个问题,下面小编就为你介绍一下windows7下如何用CMD命令复制和删除文件夹. 如果我要把f盘的file文件夹复制到c盘根目录,如何用cmd命令实现呢?很简单: xcopy f:file c:file /e 如果要删除呢?也简单:假设删除d盘下的123文件夹 del/s/q d:123*.* ----(用于删除文件夹下的子文件) rd/s/q d:123 ----(用于删除文件夹