neongm

Untitled

Dec 23rd, 2020
981
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.24 KB | None | 0 0
  1. // 7.45 Дано целое число K(> 0) и строковый файл. Создать два новых файла:
  2. // строковый, содержащий первые K символов каждой строки исходного файла,
  3. // и символьный, содержащий K - й символ каждой строки(если длина строки
  4. // меньше K, то в строковый файл записывается вся строка, а в символьный
  5. // файл записывается пробел).
  6.  
  7. #include <iostream>
  8. #include <fstream>
  9. #include <string>
  10.  
  11.  
  12. void FileWorker(uint16_t k) {
  13.     std::string buffer;
  14.     std::ifstream f("f.txt");
  15.  
  16.     if (f.is_open()) {
  17.         std::ofstream sf("string_file.txt");
  18.         std::ofstream cf("char_file.txt");
  19.  
  20.         while (f) {
  21.             std::getline(f, buffer);
  22.             if (buffer.length() < k) cf << ' ';
  23.             else cf << buffer[k];
  24.             sf << buffer.substr(0, k) << '\n';
  25.         }
  26.  
  27.         sf.close(); cf.close(); f.close();
  28.         std::cout << "готово\n";
  29.     }
  30.     else {
  31.         std::cout << "файл не открыт\n";
  32.     }
  33. }
  34.  
  35. int main()
  36. {
  37.     setlocale(LC_ALL, "russian");
  38.  
  39.     uint16_t k;
  40.     std::cout << "введите K:\n";
  41.     std::cin >> k;
  42.  
  43.     FileWorker(k);
  44.     return 0;
  45. }
  46.  
Advertisement
Add Comment
Please, Sign In to add comment