Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <windows.h>
- #include <string>
- #include <string.h>
- #include <fstream>
- using namespace std;
- string buff;
- ifstream vivod;
- ofstream vvod;
- typedef string* Text[100];
- short menu() {
- short m;
- system("cls");
- cout << "МЕНЮ" << endl;
- cout << "Введите [1] для ввода данных." << endl;
- cout << "Введите [2] для просмотра введенных данных." << endl;
- cout << "Введите [3] для разделения текста построчно и вывода его." << endl;
- cout << "Введите [4] для добавления строки." << endl;
- cout << "Введите [5] для очистки файла." << endl;
- cout << "Введите [0] для выхода." << endl;
- cout << ">> ";
- cin >> m;
- return m;
- }
- void input() {
- vvod.open("file.txt", ios_base::app);
- system("CLS");
- getline(cin, buff);
- string str;
- cout << "Введите строку: ";
- getline(cin, str);
- vvod << str;
- vvod.close();
- cout << str << endl;
- }
- void list() {
- vivod.open("file.txt");
- system("cls");
- if (vivod.bad() || vivod.peek() == EOF)
- cout << "Ваш файл не существует или пуст! Перейдите в пункт [1], чтобы исправить это. " << endl;
- else {
- string text = "";
- getline(vivod, text);
- cout << text << endl;
- }
- vivod.close();
- }
- void out(int &strSize,Text X, bool& cr) {
- vivod.open("file.txt");
- system("cls");
- if (vivod.bad() || vivod.peek() == EOF)
- cout << "Ваш файл не существует или пуст! Перейдите в пункт [1], чтобы исправить это. " << endl;
- else {
- cout << "Введите длину строки: ";
- cin >> strSize;
- string text;
- int c = 0, i = 0;
- getline(vivod, text);
- while (c < text.length()) {
- string TX = text.substr(c, strSize);
- c += strSize;
- X[i] = new string;
- *X[i] = TX;
- i++;
- }
- cr = false;
- }
- vivod.close();
- cout << "Результат: " << endl;
- int i = 0;
- while (X[i] != NULL) {
- cout << *X[i] << endl;
- i++;
- }
- }
- void clear() {
- system("cls");
- vvod.open("file.txt", ios::out);
- vvod << "";
- vvod.close();
- cout << "Ваш файл очищен!" << endl;
- }
- void add(int &strSize, Text X) {
- vivod.open("file.txt");
- system("cls");
- if (vivod.bad() || vivod.peek() == EOF)
- cout << "Ваш файл не существует или пуст! Перейдите в пункт [1], чтобы исправить это. " << endl;
- else {
- int x, y, c = 0, m = 0;
- cout << "Введите через пробел номер строки, к которой надо добавить, и номер строки, которую надо добавить: ";
- cin >> x >> y;
- string text;
- getline(vivod, text);
- cout << "Изначальный текст:" << endl;
- while (c < text.length()) {
- string TX = text.substr(c, strSize);
- c += strSize;
- m += 1;
- }
- if (x > m || y > m) {
- // Нужно что-то сделать, вот тебе задача
- }
- cout << "Измененный текст:" << endl;
- for (int k = 0; k < m; k++) {
- if (k == x) {
- cout << *X[x] + *X[y] << endl;
- }
- else
- cout << *X[k] << endl;
- }
- }
- vivod.close();
- }
- int main() {
- system("cls");
- SetConsoleCP(1251);
- SetConsoleOutputCP(1251);
- short choice;
- int strSize = 0;
- Text T;
- for (int i = 0; i < 100; i++) {
- T[i] = NULL;
- }
- bool pro = true;
- do {
- choice = menu();
- switch (choice) {
- case 1:
- input();
- system("pause");
- break;
- case 2:
- list();
- system("pause");
- break;
- case 3:
- out(strSize, T, pro);
- system("pause");
- break;
- case 4:
- if (pro) {
- system("cls");
- cout << "Разделите текст на строчки! Перейдите в пункт [4]!";
- system("pause");
- break;
- }
- system("cls");
- add(strSize, T);
- system("pause");
- break;
- case 5:
- clear();
- system("pause");
- break;
- case 0:
- cout << "До свидания!" << endl;
- break;
- default:
- cout << "Введите одно из приведенных чисел!" << endl;;
- break;
- }
- } while (choice);
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement