C++如何做到只读取文件的某一行

比如在一个目录下有好多文件,现在我要读取每个文件的第二行,请问使用什么方式可以实现?给个思路也可以,感谢大家...
文件是这样的:

516 511 512 513
519 563 534 298

就是说我不能直接读第二行,要先用一个数组把第一行读了,然后忽略掉?没有其他可以定位的东西吗...

可以先使用ifstream类打开要读的文件,然后使用ifstream的成员函数getline读出一行数据。

如果需要读的并不是第一行,而是中间某一行,那么可以先读出前面所有行,抛弃后读需要的一行。

以下是读文件file_name的第n行的操作:

//读取文件filename的第n行,存到buf中,buf_len为buf的长度。
void read_line(char *filename, int n, char *buf, int buf_len)
{
    ifstream in(filename);//打开文件。
    int i;
    
    for(i = 0;i< n; i ++)
        in.getline(buf, buf_len);//读取数据。
    in.close();//关闭文件。虽然在C++中不是必须,但是显式关闭文件是一个很好的习惯。
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-05-14
如果你确切知道第一行所占的字节数,那么可以使用fseek定位到第二行的位置再读;如果不知道的话,那就只能读取第一行再扔了。
第2个回答  2009-05-14
枚举目录下的文件名;
依次打开;
一次读取一行;
把第一行的数据忽略;
这样就读到了第二行。
伪码如下:
getline temp;
getline str;
这样str就是第二行了。
补充答案:
直接忽略掉是最好的方法,又方便,不知道楼主为何还要别的方法?本回答被提问者采纳

C++中怎么从文件中直接读出某一行或写某一行
读出方法1:以ios::in即文本流方式打开,用getline就可以顺次读到第5行,注意中间使用的缓冲区要大一些,防止到'\\n'时溢出 读出方法2:以ios::binary|ios::in即二进制流输入方式打开,依次判断是否'\\n',同样也可以读出指定的第几行 但是,如果想输出的话,即使用fstream方式打开,如果写入的第5行...

c++中如何读取指定文件中任意行的内容
ifstream inFile; inFile.open("c:\/\/test.txt"); \/\/ 打开文件 string str; \/\/ 字符串 getline(inFile, str, '\\n'); \/\/ 读取第一行内容,存入存str中 getline(inFile, str, '\\n'); \/\/ 读取第二次,第二行内容,存入存str中 getline(inFile, str, '\\n'); \/\/ 读取...

怎么用C\/C++语言读取excel文件的某一行某一列
AnsiString sSQL = "Select * from [Sheet1$]"; ADOQuery1->SQL->Text = sSQL; ADOQuery1->Active = True; }}\/\/---void __fastcall TForm1::btnExitClick(TObject *Sender){ Close(); }\/\/---\/*** 2-- OLE

C++怎么读取txt文件指定的一行或计算出某一行的偏移量。谢谢大家了,这...
void** 就是一个万能的指针的指针,可以存放任何一个类型的指针变量,跟你举 个例子 void ** Rll(int size){ void *p;p=malloc(size);return &p;} 运用的时候: *(*(int**)(Rll(4))=54;这个函数可以申请指定大小,任意类型的 对象空间,并只需要传个大小过去就行了.2维指针在VC++的com技...

C++ builder中如何读取文本中的一行
我有一个常用的方法 不用file文件操作 利用Memo控件 首先加一个Memo ,然后Memo->LoadFromFile(filepath+filename);此时 文件被读取到Memo中,这样对Memo操作,一行一行的读取就可以了 比用文件流的方法好操作多了 。 Memo的Visiable可以设置为 false.这样也看不到它 ...

C++ 读文件如何定位到某一行?
C++不支持直接定位到某一行。不过可以通过先定位到文件开始,然后把之前所有行均读出的方式,使文件定位到具体行。具体代码如下:ifstream & seek_to_line(ifstream & in, int line)\/\/将打开的文件in,定位到line行。{ int i; char buf[1024]; in.seekg(0, ios::beg); \/\/定位到文...

c++实现提取文件的某一行的字符串
参考如下 include <string> include <iostream> using namespace std;int main(){ string s="ABAB";char a[100];strncpy(a,s.c_str(),s.length()\/2);cout<<a<<endl;}

c++如何读取一个文件中的一部分字符串内容
可以使用到字符串函数的substr()函数,包含在头文件<cstring>中;针对你上面的问题,可以先将文件内容全部保存在一个字符串str中,(可以包括空格一起写入,也可以不保存空格;为了节约我这里讲的 是不保存空格的方式)1、将文件内容读取出来并保存到str中,那么str中的内容是 “MM5net010B1vss!vss!NMOS_...

C++Builder5如何实现准确读写Excel文件的某行某列数据
Workbooks〃)).OleFunction(〃Add〃);\/\/新建一个工作薄 \/\/使用OlePropertyGet()函数,可以将Excel工作薄中的数据读出。newxls.OleFunction(〃SaveAs〃,(Variant)filename);\/\/保存工作薄,filename是工作薄的全文件名 ex.OleFunction(〃Quit〃); \/\/退出Excel,释放OLE对象 我不会用这个,只会VC。

c++ 文件io 怎么把指针定位到指定的行
ifstrea infile(要读取的文件);string tstr;int line;\/\/定位到某一行 cin>>line;\/\/输入要定位的行 for(int i=0;i!=line;i++)getline(infile,temp);\/\/这个函数的作用是读取一行数据 之后文件指针就定位到你想要的行的位置了!

相似回答