C++用getline读的文件,如何让文件指针退一行。

我是用string的成员函数getline对文件进行读取,读取后,需要根据下一行的内容判断是否需要退一行。也就是getline后,我想让文件指针再退回到getline以前... 我是用string的成员函数getline对文件进行读取,读取后,需要根据下一行的内容判断是否需要退一行。也就是getline后,我想让文件指针再退回到getline以前的位置,以便下次调用getline时读取的是同一行内容。 展开
 我来答
starfar1983
2010-10-26 · TA获得超过2258个赞
知道小有建树答主
回答量:692
采纳率:0%
帮助的人:1039万
展开全部
在调用getline之前,先调用tellg()得到当前位置,然后getline(),需要返回的时候调用seekg()。示例代码:

ifstream ifs(...);
...
std::streampos pos = ifs.tellg();
ifs.getline(.....);
ifs.seekg(pos);
...
硬币小耗
2015-08-09 · 知道合伙人教育行家
硬币小耗
知道合伙人教育行家
采纳数:4962 获赞数:133694
英语成绩优异,大一学年四六级就全部通过。一直兼职家教,经验丰富,暑假还在新东方担任过助教

向TA提问 私信TA
展开全部
  在调用getline之前,先调用tellg()得到当前位置,然后getline(),需要返回的时候调用seekg()。
  代码如下:
  #include <iostream>
  #include <fstream>
  #include <string>
  using namespace std;
  void main()
  {
  string s; char ch[500000];
  ofstream ob1("ab.txt");
  ifstream ifs("exex.txt");
  while(ifs)
  {
  getline(ifs,s);
  if(ifs)
  // index++;
  // ob1<<s;
  ifs>>ch;
  ob1<<ch<<" ";
  cout<<ch<<" ";
  }
  }
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
舒服还巍峨的小烤红薯1217
2010-10-27 · TA获得超过597个赞
知道小有建树答主
回答量:427
采纳率:0%
帮助的人:346万
展开全部
存储一下上次的文件指针,需要后退时调用一下fseek
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式