Считывание из файла с помощью getline

Есть программа, на вход которой поступает текстовый файл (text.txt), в котором находятся две строки: первую строку необходимо записать в файл input.txt, вторую - записать в переменную expected_output. Проблема заключается в том, что если во входном файле находятся числа - всё прекрасно работает, но если там будут строки - всё ломается.

Пример:

Входной файл text.txt содержит следующее:

lkhjgl
2

Программа запишет в input.txt строку lkhjgl\n2, хотя должна записать lkhjgl

Код:

#include <fstream>
#include <iostream>
#include <string>
 
int main() {       
    std::ifstream test_file("text.txt", std::ios::in);
    std::string input;
    std::string expected_output;
    std::string line;
    while (std::getline(test_file, line, '\n')) {
        input += line;
        std::getline(test_file, line, '\n');
        expected_output += line;
        std::cout << "new test" << std::endl;
        std::cout << input << ";" << std::endl; 
        std::cout << expected_output << ";" << std::endl;

        std::ofstream input_file("input.txt");
        input_file << input;
        input_file.close();

        input.clear();
        expected_output.clear();
    } 
    return 0;
}

Ответы (0 шт):