Тема: Створення та обробка бінарних числових файлів.
Я намагаюсь створити файл з даними , які буде зчитано та оброблено , а після нові дані будуть записані у інший файл. Я маю два різні коди , які мені не вдається сумістити.
Ось частина із першого коду
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-ої кількості , доки всі групи не будуть прочитані. Цей код теж працює коректно, в консолі результати правильні. АЛЕ мені потрібно результати записати у другий файл, а не просто вивести у консоль.
Підведу підсумок , щоб було зрозуміло мою проблему.
Розумію як створити/зчитати файл та записати в нього дані.
Розумію як написати алгоритм для знаходження мінімумів.
АЛЕ не розумію як це сумістити до купи в один працюючий код.
Можливо хтось зіштовхувався зі схожею проблемою. Буду дуже вдячна почути пораду чи підказку! Дякую за увагу!