1

Тема: Створення та обробка бінарних числових файлів.

Я намагаюсь створити файл з даними , які буде зчитано та оброблено , а після нові дані будуть записані у інший файл. Я маю два різні коди , які мені не вдається сумістити.

Ось частина із першого коду

void newfile_g(char filename_g[], char filename_f[], ofstream& gout, ifstream& fin)
{
    fin.open(filename_f, ios::in | ios::binary);
    gout.open(filename_g, ios::out | ios::binary);
    int x, a, n;
    while (fin.read((char *)&x, sizeof x))
    {
        a = x / n;
        gout.write((char *)&a, sizeof a);
    }
    gout.close();
    fin.close();
}

Тут я створюю файл g , зчитую дані файлу f. При цьому дані спочатку обробляються ( зробила банальну обробку a = x/n , коли тільки почала розбиратись з цією темою ). А потім нові дані записуються у файл g. У інших функціях файл g зчитується без проблем та у консолі я бачу правильні розрахунки. Але мені потрібно обробити в інший спосіб і я це реалізувала в наступному коді.

Ось частина із другого коду

void findMin(char filename_f[] ,ifstream& fin, int n)
{
    fin.open(filename_f, ios::in | ios::binary); 

    if (!fin.is_open()) 
    {
        cout << "Помилка!" << endl;
        exit(1);
    }
    int x, min;
    bool first = true;
    while (fin.read((char *)&x, sizeof(x)))
    {
        if (first)
        {
            min = x;
            first = false;
        }
        else if (x < min)
        {
            min = x;
        }
        if ((fin.tellg() / sizeof(x)) % n == 0)
        {
            cout << min << endl;
            min = INT_MAX;
            first = true;
        }
    }
    fin.close();
}

Мета цього алгоритму : знаходити найменше значення серед групи чисел з n-ої кількості , доки всі групи не будуть прочитані. Цей код теж працює коректно, в консолі результати правильні. АЛЕ мені потрібно результати записати у другий файл, а не просто вивести у консоль.

Підведу підсумок , щоб було зрозуміло мою проблему.
Розумію як створити/зчитати файл та записати в нього дані.
Розумію як написати алгоритм для знаходження мінімумів.
АЛЕ не розумію як це сумістити до купи в один працюючий код.

Можливо хтось зіштовхувався зі схожею проблемою. Буду дуже вдячна почути пораду чи підказку! Дякую за увагу!

2

Re: Створення та обробка бінарних числових файлів.

maria_fesqia написав:

Мені потрібно результати записати у другий файл, а не просто вивести у консоль.

maria_fesqia написав:

Розумію як створити/зчитати файл та записати в нього дані.

Щось не сходиться.. Якщо ви розумієте як створити файл та записати в нього дані, то в чому саме полягає ваша проблема?

maria_fesqia написав:

АЛЕ не розумію як це сумістити до купи в один працюючий код.

Ну, так додайте код, що записує у файл з вашого першого коду в частину із другого коду.

3

Re: Створення та обробка бінарних числових файлів.

Алгоритм без структури даних  - це графоманія. Це зрозуміло?
Я не бачу жодної структури даних.
Базовою структурою даних в с++ є клас. я не бачу жодного класу.

4

Re: Створення та обробка бінарних числових файлів.

maria_fesqia написав:

Розумію як створити/зчитати файл та записати в нього дані.
Розумію як написати алгоритм для знаходження мінімумів.
АЛЕ не розумію як це сумістити до купи в один працюючий код.

Можливо хтось зіштовхувався зі схожею проблемою.

Ні, з такою проблемою не стикався. Якщо ви все розумієте, то можете звести в один код. А що у вас виходить натомість, можете показати? Бо я не зрозумію, у чому ваша проблема, якщо не побачу, що у вас виходить.