Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <string>
- using namespace std;
- // ф-ия, которая проверят, нужно ли добавлять слово во 2 файл или нет.
- // если возвращает 1, то не нужно, если 0, то нужно
- int del_letters(string& a, char b, char c) {
- int flag1 = 0, flag2 = 0;
- for (int i = 0; i < a.size(); ++i) {
- if (a[i] == b)
- flag1 = 1;
- if (a[i] == c)
- flag2 = 1;
- }
- if (flag1 && flag2)
- return 1;
- return 0;
- }
- int main() {
- ifstream f;
- ofstream f2;
- string fdirectory = "C:\\f.txt"; // полный путь, где находится файл со словами
- string f2directory = "C:\\f2.txt"; // полный путь, куда записывать нужные слова
- char ch1, ch2;
- // считываем пути
- cout << "Enter \"f\" directory. Example \"C:\\f.txt\"\n";
- cin >> fdirectory;
- f.open(fdirectory);
- cout << "Enter \"f2\" directory. Example \"C:\\f2.txt\"\n";
- cin >> f2directory;
- f2.open(f2directory);
- cout << "Enter letters which you don't want to see in the words\n";
- // считаем символы, которые будем удалять
- cin >> ch1 >> ch2;
- // проверка, открылись ли файлы f1, f2
- if (!f)
- {
- cout << "File \"f\" not opened";
- return -1;
- }
- if (!f2)
- {
- cout << "File \"f2\" not opened";
- return -1;
- }
- // сам парсинг
- while (!f.eof())
- {
- string a; f >> a;
- // проверка, нужно ли добавлять слово
- if (!del_letters(a, ch1, ch2))
- {
- f2 << a;
- f2 << ' ';
- }
- // просто чтоб вывести строки со словами почти как в 1 файле
- char ch = '1';
- do
- {
- f.get(ch);
- } while (!f.eof() && ch == ' ' && ch != '\n');
- if (ch == '\n')
- f2 << ch;
- else {
- if (!f.eof())
- f.putback(ch);
- }
- }
- f.close(); f2.close();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement