多次读取txt

时间:2013-03-27 18:34:00

标签: c++ text-files iostream fstream

我有一个使用text_file存储大量数字的程序。 当我必须加载这些数字时,我必须每次加载2500个数字。 我有一个while循环来反复加载它......

现在,问题发生在我猜的while循环中。

ifstream mfile("abc.txt", ifstream::out);
if(mfile.is_open())
{
    getline(mfile, b);
    char* ch = new char[b.length() + 1];
    strcpy(ch, b.c_str());
    result = atof(strtok (ch,";"));
    while(i<125)
    {
        cout<< strtok (NULL,";")<<" ";
        i++;
    }
    i=0;
}
else
{
    cout<<"probleem";
}
mfile.close();

这是一个简短的代码,它是更复杂的代码,也就是问题。

请注意,这段代码必须在while循环中。

但它只运行一次代码,可能是因为mfile不能多次使用。 当我想多次读取文件时,它必须从上一次读取结束时开始读取。

1 个答案:

答案 0 :(得分:1)

  ifstream mfile("abc.txt", ifstream::out);  // why out ??

---&GT;

  ifstream mfile("abc.txt");
  if(mfile.is_open())
 {  while(getline(mfile, b))
    {   char* ch = new char[b.length() + 1];
        strcpy(ch, b.c_str());
        result = atof(strtok (ch,";"));
        while(i<125)
        {    cout<< strtok (NULL,";")<<" ";
          i++;
        }
        i=0;
    }
 }
 else     {     cout<<"probleem";      }
 mfile.close();

您还可以使用streampos tellg();seekg(pos)

的组合

编辑:

istream& getline (istream& is, string& str);

将返回mfilewhile(mfile)内部将隐式转换为bool,因此有效地迭代,直到无法读取更多字符串,最后文件。