Получить файл g из чисел исходного файла, в котором не было бы двух соседних чисел одинаковой четности
Файлы вообще не понимаю( Заранее спасибо, за ответ)
Выполнить задание для текстового и бинарного файлов. Размер файла <= 64GiB.
Компоненты файла f – целые числа, чётных чисел столько же, сколько нечёт- ных. Получить файл g из чисел исходного файла, в котором не было бы двух соседних чисел одинаковой четности.
Ответы (1 шт):
Автор решения: Mikhailo
→ Ссылка
А можно читать из файлв, запоминая позиции двух указетелей - один на четные, другой на нечетные. И за каждым числом идти в нужное место. Вот так примерно, только я вывожу на экран а не в файл:
int main() {
ifstream in("data");
size_t pos2 = 0, pos1 = 0;
for (;;) {
// нечетное
in.seekg(pos1);
int n;
while (in >> n && n % 2 == 0);
if (!in) break;
cout << n << " ";
pos1 = in.tellg();
in.seekg(pos2);
while (in >> n && n % 2 == 1);
if (!in) break;
cout << n << " ";
pos2 = in.tellg();
}
}
Для бинарного файла идея та же, но даже проще - там фиксированный размер записи.