Advertisement
kxcoze

marina_newwww

Nov 4th, 2020
239
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.05 KB | None | 0 0
  1. #include <iostream>
  2. #include <windows.h>
  3. #include <string>
  4. #include <string.h>
  5. #include <fstream>
  6.  
  7. using namespace std;
  8.  
  9. string buff;
  10. ifstream vivod;
  11. ofstream vvod;
  12. typedef string* Text[100];
  13.  
  14.  
  15. short menu() {
  16.     short m;
  17.     system("cls");
  18.     cout << "МЕНЮ" << endl;
  19.     cout << "Введите [1] для ввода данных." << endl;
  20.     cout << "Введите [2] для просмотра введенных данных." << endl;
  21.     cout << "Введите [3] для разделения текста построчно и вывода его." << endl;
  22.     cout << "Введите [4] для добавления строки." << endl;
  23.     cout << "Введите [5] для очистки файла." << endl;
  24.     cout << "Введите [0] для выхода." << endl;
  25.     cout << ">> ";
  26.     cin >> m;
  27.     return m;
  28. }
  29.  
  30. void input() {
  31.     vvod.open("file.txt", ios_base::app);
  32.     system("CLS");
  33.     getline(cin, buff);
  34.     string str;
  35.     cout << "Введите строку: ";
  36.     getline(cin, str);
  37.     vvod << str;
  38.     vvod.close();
  39.     cout << str << endl;
  40. }
  41.  
  42. void list() {
  43.     vivod.open("file.txt");
  44.     system("cls");
  45.     if (vivod.bad() || vivod.peek() == EOF)
  46.         cout << "Ваш файл не существует или пуст! Перейдите в пункт [1], чтобы исправить это. " << endl;
  47.     else {
  48.         string text = "";
  49.         getline(vivod, text);
  50.         cout << text << endl;
  51.     }
  52.     vivod.close();
  53. }
  54.  
  55. void out(int &strSize,Text X, bool& cr) {
  56.     vivod.open("file.txt");
  57.     system("cls");
  58.     if (vivod.bad() || vivod.peek() == EOF)
  59.         cout << "Ваш файл не существует или пуст! Перейдите в пункт [1], чтобы исправить это. " << endl;
  60.     else {
  61.         cout << "Введите длину строки: ";
  62.         cin >> strSize;
  63.         string text;
  64.         int c = 0, i = 0;
  65.         getline(vivod, text);
  66.         while (c < text.length()) {
  67.             string TX = text.substr(c, strSize);
  68.             c += strSize;
  69.             X[i] = new string;
  70.             *X[i] = TX;
  71.             i++;
  72.         }
  73.         cr = false;
  74.     }
  75.     vivod.close();
  76.     cout << "Результат: " << endl;
  77.     int i = 0;
  78.     while (X[i] != NULL) {
  79.         cout << *X[i] << endl;
  80.         i++;
  81.     }
  82. }
  83.  
  84. void clear() {
  85.     system("cls");
  86.     vvod.open("file.txt", ios::out);
  87.     vvod << "";
  88.     vvod.close();
  89.     cout << "Ваш файл очищен!" << endl;
  90. }
  91.  
  92. void add(int &strSize, Text X) {
  93.     vivod.open("file.txt");
  94.     system("cls");
  95.     if (vivod.bad() || vivod.peek() == EOF)
  96.         cout << "Ваш файл не существует или пуст! Перейдите в пункт [1], чтобы исправить это. " << endl;
  97.     else {
  98.         int x, y, c = 0, m = 0;
  99.         cout << "Введите через пробел номер строки, к которой надо добавить, и номер строки, которую надо добавить: ";
  100.         cin >> x >> y;
  101.         string text;
  102.         getline(vivod, text);
  103.         cout << "Изначальный текст:" << endl;
  104.         while (c < text.length()) {
  105.             string TX = text.substr(c, strSize);
  106.             c += strSize;
  107.             m += 1;
  108.         }
  109.  
  110.         if (x > m || y > m) {
  111.             // Нужно что-то сделать, вот тебе задача
  112.         }
  113.         cout << "Измененный текст:" << endl;
  114.         for (int k = 0; k < m; k++) {
  115.             if (k == x) {
  116.                 cout << *X[x] + *X[y] << endl;
  117.             }
  118.             else
  119.                 cout << *X[k] << endl;
  120.         }
  121.     }
  122.     vivod.close();
  123. }
  124.  
  125.  
  126. int main() {
  127.     system("cls");
  128.     SetConsoleCP(1251);
  129.     SetConsoleOutputCP(1251);
  130.     short choice;
  131.     int strSize = 0;
  132.     Text T;
  133.     for (int i = 0; i < 100; i++) {
  134.         T[i] = NULL;
  135.     }
  136.     bool pro = true;
  137.     do {
  138.         choice = menu();
  139.         switch (choice) {
  140.         case 1:
  141.             input();
  142.             system("pause");
  143.             break;
  144.         case 2:
  145.             list();
  146.             system("pause");
  147.             break;
  148.         case 3:
  149.             out(strSize, T, pro);
  150.             system("pause");
  151.             break;
  152.         case 4:
  153.             if (pro) {
  154.                 system("cls");
  155.                 cout << "Разделите текст на строчки! Перейдите в пункт [4]!";
  156.                 system("pause");
  157.                 break;
  158.             }
  159.             system("cls");
  160.            
  161.             add(strSize, T);
  162.             system("pause");
  163.             break;
  164.         case 5:
  165.             clear();
  166.             system("pause");
  167.             break;
  168.         case 0:
  169.             cout << "До свидания!" << endl;
  170.             break;
  171.         default:
  172.             cout << "Введите одно из приведенных чисел!" << endl;;
  173.             break;
  174.         }
  175.     } while (choice);
  176.     system("pause");
  177.     return 0;
  178. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement