Advertisement
evage

Untitled

Oct 7th, 2021
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.94 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <string>
  4. using namespace std;
  5. // ф-ия, которая проверят, нужно ли добавлять слово во 2 файл или нет.
  6. // если возвращает 1, то не нужно, если 0, то нужно
  7. int del_letters(string& a, char b, char c) {
  8.     int flag1 = 0, flag2 = 0;
  9.     for (int i = 0; i < a.size(); ++i) {
  10.         if (a[i] == b)
  11.             flag1 = 1;
  12.         if (a[i] == c)
  13.             flag2 = 1;
  14.     }
  15.     if (flag1 && flag2)
  16.         return 1;
  17.     return 0;
  18. }
  19. int main() {
  20.     ifstream f;
  21.     ofstream f2;
  22.     string fdirectory = "C:\\f.txt"; // полный путь, где находится файл со словами
  23.     string f2directory = "C:\\f2.txt"; // полный путь, куда записывать нужные слова
  24.     char ch1, ch2;
  25.     // считываем пути
  26.     cout << "Enter \"f\" directory. Example \"C:\\f.txt\"\n";
  27.     cin >> fdirectory;
  28.     f.open(fdirectory);
  29.  
  30.     cout << "Enter \"f2\" directory. Example \"C:\\f2.txt\"\n";
  31.     cin >> f2directory;
  32.     f2.open(f2directory);
  33.     cout << "Enter letters which you don't want to see in the words\n";
  34.     // считаем символы, которые будем удалять
  35.     cin >> ch1 >> ch2;
  36.     // проверка, открылись ли файлы f1, f2
  37.     if (!f)
  38.     {
  39.         cout << "File \"f\" not opened";
  40.         return -1;
  41.     }
  42.     if (!f2)
  43.     {
  44.         cout << "File \"f2\" not opened";
  45.         return -1;
  46.     }
  47.     // сам парсинг
  48.     while (!f.eof())
  49.     {
  50.         string a; f >> a;
  51.         // проверка, нужно ли добавлять слово
  52.         if (!del_letters(a, ch1, ch2))
  53.         {
  54.             f2 << a;
  55.             f2 << ' ';
  56.         }
  57.         // просто чтоб вывести строки со словами почти как в 1 файле
  58.         char ch = '1';
  59.         do
  60.         {
  61.             f.get(ch);
  62.         } while (!f.eof() && ch == ' ' && ch != '\n');
  63.         if (ch == '\n')
  64.             f2 << ch;
  65.         else {
  66.             if (!f.eof())
  67.                 f.putback(ch);
  68.         }
  69.     }
  70.     f.close(); f2.close();
  71.     return 0;
  72. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement