Нужна помощь с кодом . срочно!
Написать на C++ вместе с результатом .
Из введенных с клавиатуры действительных чисел создать файл последовательного доступа. Записать в один файл все положительные числа исходного файла, а во второй файл – все отрицательные. Вывести на печать вновь созданные файлы.
Ответы
Вы вводите числа с клавиатуры, чтобы завершить их вводить, нужно отправить число 0. Затем создаются файлы input.txt, positive.txt и negative.txt. В input.txt ваши введенные числа. В positive.txt положительные, в negative.txt отрицательные. Затем программа читает получившиеся файлы и выводит в консоль, что в них.
Код на языке C++:
#include <iostream>
#include <fstream>
#include <vector>
int main() {
std::vector<double> numbers;
double number;
std::cout << "Введите числа (для завершения введите 0):" << std::endl;
while (true) {
std::cin >> number;
if (number == 0)
break;
numbers.push_back(number);
}
std::ofstream inputFile("input.txt");
if (!inputFile) {
std::cerr << "Ошибка создания файла input.txt." << std::endl;
return 1;
}
for (const auto& num : numbers) {
inputFile << num << std::endl;
}
inputFile.close();
std::ofstream positiveFile("positive.txt");
std::ofstream negativeFile("negative.txt");
if (!positiveFile || !negativeFile) {
std::cerr << "Ошибка создания файлов для записи." << std::endl;
return 1;
}
for (const auto& num : numbers) {
if (num > 0)
positiveFile << num << std::endl;
else if (num < 0)
negativeFile << num << std::endl;
}
positiveFile.close();
negativeFile.close();
std::cout << "Содержимое файла input.txt:" << std::endl;
std::ifstream input("input.txt");
std::cout << input.rdbuf() << std::endl;
input.close();
std::cout << "Содержимое файла positive.txt:" << std::endl;
std::ifstream positiveInput("positive.txt");
std::cout << positiveInput.rdbuf() << std::endl;
positiveInput.close();
std::cout << "Содержимое файла negative.txt:" << std::endl;
std::ifstream negativeInput("negative.txt");
std::cout << negativeInput.rdbuf() << std::endl;
negativeInput.close();
return 0;
}