c++文件流如何跳行读取数据

如题所述

这个简单
可以用 
getline()
反正你就是取一行,然后不进行处理就是了
fscanf也可以取一行的

getline(fp,astring);//先写这句
然后
写你跳过那行后该写的代码

跳行,
两种方法:

1 读取一行, 然后把这些数据废弃,文件指针就指向下一行了
2 fseek 移动指针,移动到下一行的行首位置,然后读取就可以了。

2 个方法要求知道需要移动的字符数, 可能不太实际,
第一个方式可以这样:
fsanf(fp, "%[^\n]\n ", buf); 如此读取一行,
文件指针就到了下面一行的,
如果还需要移动,
那么继续读取 ..
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-04-12
使用getline,不保存不就行了吗,或者使用文件定位五、文件定位  和C的文件操作方式不同的是,C++ I/O系统管理两个与一个文件相联系的指针。一个是读指针,它说明输入操作在文件中的位置;另一个是写指针,它下次写操作的位置。每次执行输入或输出时,相应的指针自动变化。所以,C++的文件定位分为读位置和写位置的定位,对应的成员函数是 seekg()和 seekp(),seekg()是设置读位置,seekp是设置写位置。它们最通用的形式如下:  istream &seekg(streamoff offset,seek_dir origin);  ostream &seekp(streamoff offset,seek_dir origin);  streamoff定义于 iostream.h 中,定义有偏移量 offset 所能取得的最大值,seek_dir 表示移动的基准位置,是一个有以下值的枚举:  ios::beg: 文件开头  ios::cur: 文件当前位置  ios::end: 文件结尾  这两个函数一般用于二进制文件,因为文本文件会因为系统对字符的解释而可能与预想的值不同。  例:  file1.seekg(1234,ios::cur);//把文件的读指针从当前位置向后移1234个字节  file2.seekp(1234,ios::beg);//把文件的写指针从文件开头向后移1234个字节  如果vc编程的话最好使用CFile类等更加方便于文件操作</CA>
第2个回答  推荐于2016-02-13
没啥好办法,
大概只能采取先读,没到需要的行,扔掉,到了采用。

如果是固定格式就简单了,比如每行120个字符,一个不多,一个不少;
固定跳过NLine* NChar 就行了 用seek
ifstream::seekg , ofstream::seekp本回答被网友采纳
第3个回答  2013-04-12
连继读取两行,取一行,丢弁一行,就是跳行读取了

c++文件流如何跳行读取数据
跳行,两种方法:1 读取一行, 然后把这些数据废弃,文件指针就指向下一行了 2 fseek 移动指针,移动到下一行的行首位置,然后读取就可以了。2 个方法要求知道需要移动的字符数, 可能不太实际,第一个方式可以这样:fsanf(fp, "%[^\\n]\\n ", buf); 如此读取一行,文...

在C++的文件读写中,怎么直接从“下一行”开始读取数据?
由于C++处理文件是以流方式处理,要从下一行开始读取,先要能够将文件内部指针移到下一行,可以通过getline处理。istream inf("text.txt", ios::in);char buf[1000]; \/\/ 申请足够放入一行数据的大小 inf.getline(buf, 1000);这时文件内部指针就移到下一行的开始了。

C++中怎么逐行读取数据
1)读到文件结束符;2)遇到函数指定的结束符;3)输入达到最大限度。getline有两种重载:istream &getline( char *buffer, streamsize num );istream &getline( char *buffer, streamsize num, char delim );参数说明:buffer: 读取的数据将存在buffer中。num:最多读取num个字符。即之前所说的最大...

c++的文件输入输出流中,能够从文件中读取数据的方法有哪些?
1.get()方法:get()方法是文件输入流中最基本的读取字符的方法。通过get()方法可以读取一个字符并将其放入字符变量中。语法:int get()2. getline()方法:getline()方法可以从文件输入流中读取一行数据,并将其存储在字符串变量中。语法:istream& getline(char* str, streamsize n)3. read()方法...

如何用C++对一个文本文档里面的许多数据进行逐行读取,并放入数组中_百 ...
推荐使用文件流来读取。如果你的数据是用空格、制表符和换行符来分隔的,那么程序可以写的很简单。直接逐行用fin就可以了。如果你的数据是用逗号或者其他字符来分隔,用换行来分行的,那么你需要在循环中写入两次读入,第一次用于读入数据,第二次用于跳过字符。如果数据中间的分隔字符是不规范、不一致、...

C++如何实现多组测试数据,处理到文件结束
还应该加入语句 :using namespace std;使用的使用应该创建一个文件流对象 比如读入一个文件可以使用下列语句:ifstream File;char *FileName;char DataBuffer[128];\/* 此处应设定文件名 *\/ File.open(FileName); \/\/打开文件 \/\/open函数其实有三个参数,此处后两个使用默认值了,具体函数使用请见...

c++如何读取txt的数据(一行一行的读,从第一行读到最后一行)要详细代 ...
C++读取txt文本数据并一行一行的读方法如下:1、使用C++提供输入输出流的getline函数可以实现整行读取;完整代码如下:include<iostream>#include<fstream>using namespace std;int main(){ \/\/ 定义输入文件流类对象infileifstream infile("test.txt",ios::in);if(!infile){ \/\/ 判断文件是否存在 ...

C++中怎么从文件中直接读出某一行或写某一行
读出方法2:以ios::binary|ios::in即二进制流输入方式打开,依次判断是否'\\n',同样也可以读出指定的第几行 但是,如果想输出的话,即使用fstream方式打开,如果写入的第5行数据与原始第5行字节不同怎样办?肯定不能原文件内输出了,还是需要用一个新文件,这边读,那边写才行 另外,C语言用的是...

在c++中,在读取文件的时候怎么可以让它在换行处结束?
使用fgetc的方式从流中读取字符,当读取到的字符为'\\r'或者'\\n'时,结束

C++的如何在打开一个文本后,一行一行的读取内容?
下面介绍代码:首先说明一下头文件,头文件中<iostream>, <string>的作用就不用说了,<fstream>是定义文件的需要的头文件,而<sstream>是字符串流stringstream所需要的头文件。第8行: std::ifstream fin("split.txt", std::ios::in); 定义读取的文本文件。第9行: char line[1024] = {0}; ...

相似回答