Возможно ли чтение бинарного файла без массива? Написал программу, которая создает два файла, в один добавляет произвольные числа, а в другой по нужному критерию из первого. Программа работает не совсем корректно: берет последнее значение первого файла и сравнивает его по нужным критериям, вместо проверки всей области. Есть решение: использовать массив и потом работать с ним, но увы условия не разрешают использовать его.
Скрин :
Вот код :
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <ctime>
using namespace std;
int main()
{
setlocale(LC_ALL, "Russian");
srand((unsigned int) time(0));
double numeric;
int n;
cout << "Введите количество чисел:";
cin >> n;
ofstream f("f.bin", ios::binary|ios::out);
for(int i=0; i<n; i++)
{
numeric = (rand()%10);
f.write((char *)&numeric, sizeof(numeric));
cout << numeric << " ";
}
cout << endl;
f.close();
ofstream g("g.bin", ios::binary|ios::out);
ofstream i_f("f.bin", ios::binary|ios::in);
for(int i=0; i<n; i++)
{
if(numeric < 10)
{
g.write((char *)&numeric, sizeof(numeric));
cout << numeric << " ";
}
}
cout << endl;
f.close();
g.close();
system("pause");
return 0;
}