Advertisement
Guest User

Untitled

a guest
May 22nd, 2018
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.00 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. #include <fstream>
  4. #include <io.h>
  5.  
  6. using namespace std;
  7.  
  8. int main()
  9. { string name; // Переменная для имени файла
  10. cout << "Insert filename\n";
  11. cin>>name;
  12. bool flg = 1;
  13. for ( int i = 0; i < name.length(); i++) { // цикл для проверки латинских букв в имени файла
  14. if (!((int)name[i] > 100 & (int)name[i] < 133 | (int)name[i] > 140 & (int)name[i] < 173)) { // диапазон, где лежат буквы латинского алфавита
  15. // таблицы ASCII
  16. flg = 0; // если хоть одна буква не латинская, то флаг - ложь
  17. };
  18. };
  19.  
  20. //int flg = 0; //флаг. если =1 то файл с введенным названием был найден, иначе не найден и цикл повторяется
  21. //ofstream fout("keklolchthreeoh.txt"); // создаём объект класса ofstream для записи и связываем его с файлом cppstudio.txt
  22. while (flg == 0)
  23. {
  24. try //обработка исключения
  25. {
  26. ofstream file; //поток для файла
  27. string name; //имя файла считываем с клавиатуры
  28. getline(cin, name);
  29. if (access(name.c_str(), 0) == -1) // проверка на то есть ли файл. если возвращает -1 то пустой иначе не пустой
  30. {
  31. throw 321; //генерируем число. С этого момента все что ниже пропускается. Работает блок catch
  32. }
  33. ofstream outfile; // создаем переменная потока данных для записи их в файл
  34. outfile.open(name.c_str()); // открываем файл с именем name, которое ввели раньше с клавиатуры
  35. string hokku; // создаем переменную для хранения строчек хокку
  36. cout << "Insert hokku\n";
  37. cin.ignore(); // данная функция нужна дляgetline(), т.к. в памяти сохраняется сивмол переноса строки \n и тогда нельзя считать строку из командной консоли
  38. for ( int i = 0; i < 3; i++) { // вводятся три строчки хокку по очереди
  39. getline(cin,hokku); // функция, которая позволяет считывать строку с пробелами
  40. outfile << hokku << endl; // запись строки хокку в файл
  41. };
  42. outfile.close(); // закрытие файла
  43. }
  44. flg = 1;
  45. }
  46. catch(int n)
  47. {
  48. cout << " file not found. Go to new file." << endl;
  49. }
  50. }
  51. return 0;
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement