none
c++文件读写问题 RRS feed

  • 问题

  • #include <iostream>
    #include <fstream>
    #include <string>
    using namespace std;
    void main()
    {
     fstream data;
     string a;
     int i=0;
     data.open("c:\\a.txt",ios::in |ios::out);
     while(1)
     {
      data.seekg(0,ios::beg);
      while(data>>a)
      {
       cout<<a<<endl;
      }
      i++;
      if(i == 20)
       break;
     }
    }

    怎么只能循环一次  我的想法是通过data.seekg(0,ios::beg);把指针移到开头在重新遍历一遍
    C++
    2009年11月22日 10:30

答案

  •  while(1)
     {
      data.seekg(0,ios::beg);
      while(data>>a)
      {
       cout<<a<<endl;
      }
      i++;
     data.clear();// reset the flag
      if(i == 20)
       break;
     }

    麻烦把正确答案设为解答。
    • 已标记为答案 Nancy Shao 2009年12月11日 8:05
    2009年11月23日 3:49
    版主
  • 文件读一次后设置了 文件 eof  标志  ,seekg 前面去除 文件结尾状态 如。data.clear(); 就行了  

    • 已标记为答案 Nancy Shao 2009年12月11日 8:05
    2009年11月23日 3:20

全部回复

  • 文件读一次后设置了 文件 eof  标志  ,seekg 前面去除 文件结尾状态 如。data.clear(); 就行了  

    • 已标记为答案 Nancy Shao 2009年12月11日 8:05
    2009年11月23日 3:20
  •  while(1)
     {
      data.seekg(0,ios::beg);
      while(data>>a)
      {
       cout<<a<<endl;
      }
      i++;
     data.clear();// reset the flag
      if(i == 20)
       break;
     }

    麻烦把正确答案设为解答。
    • 已标记为答案 Nancy Shao 2009年12月11日 8:05
    2009年11月23日 3:49
    版主