Редактирование цикла вывода
Мне необходимо создать программу записывающую числа в бинарный файл и выводящую сумму чётных чисел. Программа успешно записывает файл, однако цикл по выводу на консоль числа и сумму выводит последнее число два раза и прибавляет это число к переменной сумме. Мне нужна ваша помощь в исправлении этого цикла, пожалуйста. Использовать n вместо fs.eof()==false; не вариант
#include <iostream>
#include <fstream>
#include <string>
#include <ctime>
using namespace std;
int main()
{
srand(time(NULL));
setlocale(LC_ALL, "ru");
string path = "first.bin";
int n;
int sum = 0, mas;
int a;
cout << "Введите количество элементов(отсчёт будет вестись с нуля)" << endl;
cin >> n;
fstream fs;
fs.open(path, fstream::in | fstream::out | fstream::trunc | fstream::binary);
if (fs.is_open())
{
for (int i = 0; i < n; i++)
{
a = rand() % 30 - 10;
fs.write((char*)&a, sizeof(int));
}
}
else
{
cout << "Не удалось открыть файл." << endl;
}
fs.close();
fs.open(path, fstream::in | fstream::binary);
for (int i = 0; fs.eof()==false; i++) {
fs.read((char*)&a, sizeof(int));
cout << "mas[" << i << "]=" << a << endl;
if (a % 2 == 0)
{
sum += a;
}
}
cout << "Сумма чётных элементов элементов в файле: " << sum << endl;
fs.close();
system("pause");
return 0;
}
