#include <iostream>
#include <fstream>
#include <limits>
using namespace std;
int main() {
ifstream inputFile("input.txt"); // Открываем файл для чтения
ofstream outputFile("output.txt"); // Открываем файл для записи
if (!
inputFile.is _open() || !
outputFile.is _open()) {
cerr << "Ошибка открытия файла!" << endl;
return 1;
}
int number;
int minEven = numeric_limits<int>::max(); // Инициализируем минимальное четное максимальным значением int
int maxEven = numeric_limits<int>::min(); // Инициализируем максимальное четное минимальным значением int
bool foundEven = false; // Флаг, указывающий, были ли найдены четные числа
while (inputFile >> number) {
if (number > 0 && number % 2 == 0) {
foundEven = true;
if (number < minEven) {
minEven = number;
}
if (number > maxEven) {
maxEven = number;
}
}
}
if (foundEven) {
outputFile << "Минимальное четное число: " << minEven << endl;
outputFile << "Максимальное четное число: " << maxEven << endl;
} else {
outputFile << "В файле нет четных положительных чисел" << endl;
}
inputFile.close();
outputFile.close();
return 0;
}
Объяснение кода:
1. Включение заголовочных файлов:
o iostream: для использования cin, cout и cerr (ввод-вывод).
o fstream: для работы с файлами (ifstream для чтения, ofstream для записи).
o limits: для использования numeric_limits, чтобы инициализировать переменные минимальным и максимальным значениями типа int.
2. Открытие файлов:
o ifstream inputFile("input.txt");: открывает файл "input.txt" для чтения.
o ofstream outputFile("output.txt");: открывает файл "output.txt" для записи.
3. Проверка на успешное открытие файлов:
o Используем !
inputFile.is _open() и !
outputFile.is _open(), чтобы проверить, удалось ли открыть файлы.
o Если произошла ошибка, выводим сообщение об ошибке в cerr (стандартный поток вывода ошибок) и завершаем программу с кодом ошибки 1.
4. Инициализация переменных:
o number: переменная для хранения текущего числа, считанного из файла.
o minEven: инициализируется максимальным значением int, чтобы гарантировать, что первое четное число, считанное из файла, будет меньше.
o maxEven: инициализируется минимальным значением int по аналогии с minEven.
o foundEven: флаг, установленный в false, будет изменен на true, как только будет найдено первое четное положительное число.