Дан текстовый файл. Необходимо переписать его строки в другой файл. Порядок строк во втором файле должен совпадать. С++?

Не могу понят как сделать порядок строк как в исходном.

**Строка строка строка строка

Строка строка строка строка

Строка строка строка строка** такой порядок в исходном файле

#include <iostream>
#include <fstream>
using namespace std;

int main()
{
    system("chcp 1251");
    ifstream file;
    ofstream file2;
    file.open("D:\\Проекты\\Копирование строк\\Копирование строк\\File1.txt", ios::in);
    file2.open("D:\\Проекты\\Копирование строк\\Копирование строк\\File2.txt",ios::out);
    string s;
    if (file.is_open() && file2.is_open())
    {
        while (!file.eof())
        {
            s = "";
            file >> s;
            file2 << s;
        }
        file.close();
        file2.close();
    }
}

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

Автор решения: DmitryK

Оператор >> читает до разделителя (пробел). Используйте std::getline().
перед проверкой состояния чтения из файла нужно сделать операцию чтения - только после нее изменяется состояние потока. Здесь можно потоки не закрывать, т.к. программа завершается, объекты разрушаются, деструкторы закроют потоки. В присваивании s = ""; нет смысла, т.к. всё равно в нее идет чтение.

#include <iostream>
#include <fstream>

using namespace std;

int main()
{
    ifstream file;
    ofstream file2;
    file.open("File1.txt", ios::in);
    file2.open("File2.txt",ios::out);

    string s;
    if (!file.is_open() || !file2.is_open())
        return 1;
    
    std::getline( file, s );
    while (file)
    {
        file2 << s;
        std::getline( file, s );
    }
}
→ Ссылка