Я пытаюсь записать несколько строк в текстовый файл. Я хотел бы очистить файл перед добавлением в него при каждом запуске. Я могу очистить предыдущее содержимое, но когда я это делаю, по какой-то причине только последняя строка моего входного файла добавляется к выходному файлу. Я также попытался с помощью remove () стереть файл и получил тот же вывод.
С другой стороны, без очистки или удаления файла все правильно добавляется к выходному файлу.
Я был бы рад найти способ решить эту проблему и, возможно, понять, почему это происходит. Я использую C ++ 11.
Я посмотрел здесь: Как очистить файл в режиме добавления в C ++
#include <string>
#include <fstream>
#include <sstream>
#include <iostream>
#include <stdio.h>
int main() {
std::fstream infile;
std::string line;
infile.open("file.txt" , std::ios::in);
while (std::getline(infile, line)) {
std::istringstream line_buffer(line);
std::string word;
std::fstream outfile;
outfile.open("out.txt", std::ios::out);
outfile.close();
outfile.open("out.txt", std::ios::app);
while (line_buffer >> word) {
std::cout << word << " ";
outfile << word << " ";
}
std::cout << std::endl;
outfile << std::endl;
}
return 0;
}