Advertisement
kutuzzzov

Урок 2 такие разные потоки

May 24th, 2023
1,005
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.11 KB | None | 0 0
  1. #include <cassert>
  2. #include <fstream>
  3. #include <iostream>
  4. #include <string>
  5. #include <string_view>
  6.  
  7. using namespace std;
  8.  
  9. string GetLine(istream& in) {
  10.     string s;
  11.     getline(in, s);
  12.     return s;
  13. }
  14.  
  15. // реализуйте эту функцию:
  16. void CreateFiles(const string& config_file) {
  17.     ifstream input(config_file);
  18.     ofstream out;
  19.     while (true) {
  20.         string str = GetLine(input);
  21.         if (str.empty()) {
  22.             return;
  23.         }
  24.         if (str[0] != '>') {
  25.             out.close();
  26.             out.open(str);
  27.         }
  28.         else {
  29.             str.erase(0, 1);
  30.             out << str << endl;;
  31.         }  
  32.     }
  33. }
  34.  
  35. int main() {
  36.     ofstream("test_config.txt"s) << "a.txt\n"
  37.                                     ">10\n"
  38.                                     ">abc\n"
  39.                                     "b.txt\n"
  40.                                     ">123"sv;
  41.  
  42.     CreateFiles("test_config.txt"s);
  43.     ifstream in_a("a.txt"s);
  44.     assert(GetLine(in_a) == "10"s && GetLine(in_a) == "abc"s);
  45.  
  46.     ifstream in_b("b.txt"s);
  47.     assert(GetLine(in_b) == "123"s);
  48. }
  49.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement