我有一个名为“ sample.txt”的txt文件,其数据格式为
1.0
2.1
abc
4.2
我想从txt文件中提取数字1.0、2.1、4.2,并忽略字符串“ abc”。
在提取数据之前,我想首先准确地计算一下txt文件中有多少个数字。
因为我想将数字提取到动态数组中,所以我需要知道首先要创建多少数组。
我用于计算txt文件中数字数量的代码是
ifstream myfile;
myfile.open ("sample.txt");
int dataCount = 0; // to count number of numbers
while (!myfile.eof())
{
double x;
myfile >> x;
if (myfile.fail()) // no extraction took place
{
myfile.clear();
myfile.ignore(numeric_limits<streamsize>::max(), '\n');
continue; // do nothing and start reading next data
}
// Count up if x successfully extracted
dataCount++;
}
所以现在我完成了对数字的计数,但是ifstream myfile中也没有剩下要提取的内容。无论如何,是否可以在不从ifstream myfile中提取任何内容的情况下对数字进行计数?
这是用于不允许我使用引导程序的学校作业。
答案 0 :(得分:3)
您可以关闭文件然后再次打开。或者,您可以清除文件末尾标志,然后找回开头。
myfile.clear();
myfile.seekg(0); // rewind the file to the beginning