Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Задание №3
- #include <iostream>
- #include <Windows.h>
- #include <random>
- #include <fstream>
- const int MAX_RAND_NUM = 72;
- int randNum() // генерируем "случайное" число
- {
- std::random_device rd;
- std::mt19937 mersenne(rd());
- return mersenne() % MAX_RAND_NUM + 1;
- }
- void inputСheck(int& num) // ввод числа (длины массива) с проверкой
- {
- while (!(std::cin >> num) || (std::cin.peek() != '\n') || !(num > 0)) {
- std::cin.clear();
- std::cin.ignore(SHRT_MAX, '\n');
- std::cout << "Error! Повторите ввод : ";
- }
- std::cin.ignore(SHRT_MAX, '\n');
- }
- void writeFile(int numbers) // записываем случ. числа в файл
- {
- std::ofstream out_f("C://my_file.txt"); // создаем объект ofstream
- while (numbers-- != 0)
- out_f << randNum() << " "; // записываем данные
- out_f.close(); // закрываем файл
- }
- void readFile(std::vector<int>& vec) // считываем числа из файла в массив
- {
- std::ifstream in_f("C://my_file.txt"); // создаем объект ifstream
- int num;
- if (in_f.is_open()) { // или if (my_file), если файл найден и успешно открыт
- while (in_f && in_f >> num) // пока нет ошибок и EOF, извлекаем данные
- vec.push_back(num); // присваиваем данные в вектор
- in_f.close(); // закрываем файл
- }
- else
- std::cout << "Файл \"C://my_file.txt\" не обнаружен\n";
- }
- void output(std::vector<int>& vec) //выводим результат
- {
- std::cout << "\nЧисла из файла :\n";
- for (std::vector<int>::iterator it = vec.begin(); it != vec.end(); ++it) {
- std::cout.width(4); // ширина поля числа
- std::cout << *it << "\t"; // выводим числа
- for (int i{ 0 }; i < *it; ++i)
- std::cout << '*'; // выводим звездочки
- std::cout << std::endl;
- }
- }
- int main()
- {
- SetConsoleCP(1251); SetConsoleOutputCP(1251);
- std::cout << "Программа считывает из файла целые числа, которые рандомно генерируются в диапазоне от 1 до 72.\n"
- "Для каждого считанного числа выводится строка, содержащая соответствующее количество звёздочек\n"
- "Введите целое положительное целое число (количество чисел для ввода в файл) : ";
- int numbers;
- std::vector<int>vec;
- inputСheck(numbers); // ввод числа и проверка
- writeFile(numbers); // записываем случ. числа в файл
- readFile(vec); // считываем числа из файла в массив
- output(vec); //выводим результат
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement