Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINGS
- #include <iostream>
- #include <iomanip>
- #include <fstream>
- #include <io.h>
- #include <locale>
- #include <string>
- #include <vector>
- #include <limits>
- #include <fcntl.h>
- using namespace std;
- void selection(vector<wstring>& text);
- void addbegin(vector<wstring>& text, wstring& buffer);
- void addend(vector<wstring>& text);
- void copy(vector<wstring>& text);
- void print(vector<wstring>& text);
- int main()
- {
- _setmode(_fileno(stdout), _O_WTEXT);
- _setmode(_fileno(stdin), _O_WTEXT);
- vector<wstring> text;
- wstring buffer;
- while (true)
- {
- wcin.ignore();
- wcout << L"Введите строку:" << endl;
- getline(wcin, buffer);
- }
- text.push_back(buffer);
- wcout << endl;
- while (true)
- {
- wcout
- << L"Выберите действие:\n"
- << L"1. Вставка в начало\n"
- << L"2. Отбор (с N до M символа)\n"
- << L"3. Копирование строк\n"
- << L"4. Добавить строку к тексту\n"
- << L"5. Выход\n";
- m: int i = -1;
- wcin >> i;
- switch (i)
- {
- case 1:
- addbegin(text, buffer);
- break;
- case 2:
- selection(text);
- break;
- case 3:
- copy(text);
- break;
- case 4:
- addend(text);
- break;
- case 5:
- return 0;
- default:
- wcout << L"Ошибка! Введите снова:" << endl;
- wcin.clear();
- wcin.ignore();
- goto m;
- }
- }
- }
- void addend(vector<wstring>& text)
- {
- wstring buffer;
- wcout << L"\nВведите cтроку:" << endl;
- wcin.ignore();
- getline(wcin, buffer);
- text.emplace_back(buffer);
- print(text);
- }
- void copy(vector<wstring>& text)
- {
- m1: int from = 0, to = 0;
- wcout << L"\nКопировать строку номер: ";
- wcin >> from;
- wcout << L"Перед строкой номер: ";
- wcin >> to;
- if (from < 1 || to < 1 || from > text.size() || to > text.size())
- {
- wcout << L"Ошибка" << endl;
- wcin.clear();
- wcin.ignore();
- goto m1;
- }
- from--;
- to--;
- text.insert(text.begin() + to, text[from]);
- print(text);
- }
- void selection(vector<wstring>& text)
- {
- m2: int str = 0, N = 0, M = 0;
- wcout << L"\nВведите номер строки: ";
- wcin >> str;
- wcout << L"Отбор с символа номер: ";
- wcin >> N;
- wcout << L"До символа номер: ";
- wcin >> M;
- wcout << endl;
- if (str < 1 || str > text.size() || N < 1 || N > text[str - 1].length() || M < 1 || M > text[str - 1].length())
- {
- wcout << L"Ошибка" << endl;
- wcin.clear();
- wcin.ignore();
- goto m2;
- }
- str--;
- N--;
- M--;
- wcout << L"Результат:" << endl;
- for (int i = N; i <= M; i++)
- wcout << text[str][i];
- wcout << "\n\n";
- }
- void addbegin(vector<wstring>& text, wstring& buffer)
- {
- wcout << L"\nВведите cтроку:" << endl;
- wcin.ignore();
- getline(wcin, buffer);
- text.insert(cbegin(text), buffer);
- print(text);
- }
- void print(vector<wstring>& text)
- {
- wcout << L"\nПолучившийся текст:" << endl;
- for (auto s : text)
- wcout << s << endl;
- wcout << endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement