gpt4 book ai didi

c++ - 多次读取txt

转载 作者:太空宇宙 更新时间:2023-11-04 11:57:20 25 4
gpt4 key购买 nike

我有一个程序使用 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 不能多次使用。当我想多次读取文件时,有必要从上一次读取的末尾开始读取。

最佳答案

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

--->

  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);

将返回 mfile,在 while(mfile) 内部将被隐式转换为 bool,从而有效地迭代直到它不是可以在文件末尾读取更多字符串。

关于c++ - 多次读取txt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15666738/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com