hur.cn - 华软网

 热门搜索

有关读取txt文件问题

  作者:未知    来源:网络    更新时间:2011/8/21
用getline一行行读,但是我现在需要重复的读取整个txt文档,但getline只能往下读,请问有没有什么函数可以这次读到某一行,下次继续从头开始读
---华软 网友回答---
二进制 读写  seekg 定位,文本应该也可以定位到 开始出吧

C++">seekg 语法: 
  istream &seekg( off_type offset, ios::seekdir origin );
  istream &seekg( pos_type position );


函数seekg()用于输入流,并且它将重新设置"get"指针到当前流的从origin偏移offset个字节的位置上,或是置"get"指针在position位置。 

---华软网友回复---
C++">    // 获得文件长度
    fin.seekg(0, ios::end);
    int length = fin.tellg();
    fin.seekg(0, ios::beg);
    cout << "data.bin 文件长度:" << length << endl;


先定位到文件尾 ,获得文件长度, 再定位到文件头
---华软网友回复---
C++">#include <iostream>   // 第一行内容
#include <fstream>
#include <string>

using namespace std;

int main()
{
    fstream fin("main.cpp", fstream::in);
    // 获得文件长度
    fin.seekg(0, ios::end);
    int length = fin.tellg();
    fin.seekg(0, ios::beg);
    cout << "main.cpp 文件长度:" << length << endl;

    string str;
    getline(fin, str);
    cout <<"输出第一行"  <<str << endl;

    fin.seekg(0, ios::beg);
    getline(fin, str ,'/' ); //读入 '/' 之前的
    cout <<"重新输出第一行"  <<str << endl;

    return 0;
}

---华软网友回复---
CFile::Seek();
SetFilePointer()      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。