Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include <fstream>
- #include <io.h>
- using namespace std;
- int main()
- { string name; // Переменная для имени файла
- cout << "Insert filename\n";
- cin>>name;
- bool flg = 1;
- for ( int i = 0; i < name.length(); i++) { // цикл для проверки латинских букв в имени файла
- if (!((int)name[i] > 100 & (int)name[i] < 133 | (int)name[i] > 140 & (int)name[i] < 173)) { // диапазон, где лежат буквы латинского алфавита
- // таблицы ASCII
- flg = 0; // если хоть одна буква не латинская, то флаг - ложь
- };
- };
- //int flg = 0; //флаг. если =1 то файл с введенным названием был найден, иначе не найден и цикл повторяется
- //ofstream fout("keklolchthreeoh.txt"); // создаём объект класса ofstream для записи и связываем его с файлом cppstudio.txt
- while (flg == 0)
- {
- try //обработка исключения
- {
- ofstream file; //поток для файла
- string name; //имя файла считываем с клавиатуры
- getline(cin, name);
- if (access(name.c_str(), 0) == -1) // проверка на то есть ли файл. если возвращает -1 то пустой иначе не пустой
- {
- throw 321; //генерируем число. С этого момента все что ниже пропускается. Работает блок catch
- }
- ofstream outfile; // создаем переменная потока данных для записи их в файл
- outfile.open(name.c_str()); // открываем файл с именем name, которое ввели раньше с клавиатуры
- string hokku; // создаем переменную для хранения строчек хокку
- cout << "Insert hokku\n";
- cin.ignore(); // данная функция нужна дляgetline(), т.к. в памяти сохраняется сивмол переноса строки \n и тогда нельзя считать строку из командной консоли
- for ( int i = 0; i < 3; i++) { // вводятся три строчки хокку по очереди
- getline(cin,hokku); // функция, которая позволяет считывать строку с пробелами
- outfile << hokku << endl; // запись строки хокку в файл
- };
- outfile.close(); // закрытие файла
- }
- flg = 1;
- }
- catch(int n)
- {
- cout << " file not found. Go to new file." << endl;
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement