Дан текстовый файл. Необходимо переписать его строки в другой файл. Порядок строк во втором файле должен совпадать. С++?
Не могу понят как сделать порядок строк как в исходном.
**Строка строка строка строка
Строка строка строка строка
Строка строка строка строка** такой порядок в исходном файле
#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 );
}
}