Количество записей в файле

Рейтинг: 0Ответов: 1Опубликовано: 07.02.2015

Пытаюсь посчитать количество записей в файле по формуле (размер_файла)/(размер_одной_записи), но дело в том, что в записи содержится строка, кол-во символов которой в каждой записи может быть разное, соответственно эта формуле не работает, так как размер файла будет зависеть от длин строк записей.

Так же в файл к каждой записи еще добавляются некоторые поля, но это не совсем важно, ибо их размер фиксирован.

#include <iostream>
#include <fstream>

using namespace std;

class ONE
{
    char name[10];
    int a;
    int b;

public:
    ONE(char* name, int a, int b)
    {
        strcpy(this->name, name);
        this->a = a;
        this->b = b;
    }

    friend ostream& operator << (ostream& out, const ONE& o)
    {
        return out << "Имя: " << o.name << endl << "a = " << o.a << endl << "b = " << o.b  << endl;

    }
};

void main()
{
    setlocale(LC_ALL, "rus");

    ONE obj1("Vasya", 1, 2);
    ONE obj2("Fedya", 3, 4);
    ONE obj3("Fedya123", 3, 4);

    ofstream fout("file.txt", ios_base::app);

    fout << obj1 << obj2 << obj3;

    fout.seekp(0, ios::end);

    int fsize = fout.tellp();

    system("pause");

}

Как посчитать кол-во записей в файле?

Ответы

▲ 1

@Wersel, поскольку каждая запись (а по сути строка) завершается символом '\n', то достаточно просто подсчитать их количество, например:

int n = 0;
char c;
while (inpf.get(c))
  if (c == '\n')
    n++;