Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /////////////////////// Проверка указанного пути ////////////////////////////////
- std::string inputPathToFile() {
- std::string path;
- bool isIncorrect;
- std::cout << "Укажите путь к файлу: ";
- do
- {
- isIncorrect = false;
- std::cin >> path;
- std::ifstream file(path);
- if (path.substr(path.find_last_of(".") + 1) != "txt")
- {
- isIncorrect = true;
- std::cout << "Введён некорректный формат пути! Введите путь расширением .txt заново!" << std::endl;
- }
- file.open(path);
- if (!file.is_open())
- {
- std::cout << "По указанному пути файл не найден! Укажите правильный путь: ";
- isIncorrect = true;
- }
- } while (isIncorrect);
- return path;
- }
- ///////////////////////////////////////////////////////////////////////////////
- ///////////////////////////// Ввод из файла ///////////////////////////////////
- int* fillSequenceFromFile(const int size, const std::string path) {
- int* sequence = new int[size];
- bool isIncorrect;
- std::string matrixInp;
- std::ifstream fin(path);
- std::cout << "Чтение последовательности... \n";
- fin >> matrixInp;
- for (int i = 0; i < size; i++)
- {
- do
- {
- isIncorrect = false;
- try
- {
- fin >> sequence[i];
- }
- catch (std::string errorMessage)
- {
- std::cout << "Ошибка при чтении последовательности! Введите последовательность с консоли! \n";
- isIncorrect = true;
- sequence = fillSequenceFromConsole(size);
- }
- if (!isIncorrect && (sequence[i] < MIN_VALUE || sequence[i] > MAX_VALUE))
- {
- std::cout << "Ошибка при чтении последовательности! Введите последовательность с консоли! \n";
- isIncorrect = true;
- sequence = fillSequenceFromConsole(size);
- }
- } while (isIncorrect);
- }
- fin.close();
- return sequence;
- }
- //////////////////////////////////////////////////////////////////////////////
- ////////////////////////////// Запись в файл //////////////////////////////////
- void outputSequenceInFile(std::string path, int* sequence, const int size) {
- bool isIncorrect;
- std::ofstream fout;
- std::cout << "Вывод начальной последовательности в файл... \n";
- fout.open(path, std::ios::app);
- fout << "\n";
- do
- {
- isIncorrect = false;
- try
- {
- for (int i = 0; i < size; i++)
- {
- for (int j = 0; j < size; j++)
- fout << sequence[i] << "\t";
- fout << "\n";
- }
- fout << "\n";
- }
- catch (std::string errorMessage)
- {
- std::cout << "Ошибка! Измените параметры файла или укажите новый путь! \n";
- isIncorrect = true;
- path = inputPathToFile();
- }
- } while (isIncorrect);
- fout.close();
- std::cout << "Данные успешно записаны в файл! \n";
- }
- //////////////////////////////////////////////////////////////////////////////
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement