Как посчитать количество чисел в текстовом файле без использования оператора извлечения? - PullRequest
0 голосов
/ 14 февраля 2019

У меня есть текстовый файл с именем 'sample.txt' с данными вида

1.0

2.1

abc

4.2

Я хотел бы извлечь числа 1.0, 2.1, 4.2 из txt-файла и игнорировать строку 'abc'.

Прежде чем извлекать данные, я хотел бы сначала точно подсчитать, сколько чисел содержится в текстовом файле.

Потому что я хочу извлечь числа в динамический массив, и мне нужно знать, какой размер массива создать в первую очередь.

Мой код для подсчета количества чисел в текстовом файле:

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++;
}

Итак, я закончил подсчет числа, но в myfile ifstream для меня ничего не осталосьизвлекать.Можно ли в любом случае считать числа, не извлекая ничего из myfile ifstream?

Это для школьного задания, где мне не разрешено использовать вектор.

1 Ответ

0 голосов
/ 14 февраля 2019

Вы можете просто закрыть файл и открыть его снова.Или вы можете очистить флаг конца файла и вернуться к началу.

myfile.clear();
myfile.seekg(0); // rewind the file to the beginning
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...