Чтение из файла C++ fstream
Пытаюсь обьеденить NUM_THREADS текстовых файлов с именами main{i}.tmp в один большой, построчно. Напсал простейший код который выполняется однопоточно:
void LoadBalancer::join_result(int num_threads) {
// Concatenate all main*.tmp files into main.txt
std::ofstream main_file("main.txt");
for (int i = 0; i < num_threads; i++) {
std::ifstream tmp_file(tmp_filename(i));
std::string line;
if (tmp_file.is_open() and main_file.is_open()) {
while (getline(tmp_file, line)) {
std::cout << line << '\n';
main_file << line << std::endl;
}
tmp_file.close();
} else {
throw std::runtime_error("Unable to open file, check os settings");
}
}
}
Ошибок не происходит, но в итоговый файл ничего не помещается. Дебаг показал что цикл while ниразу не отробатывет. Исходновый файлы имеют вид (main0.tmp):
1
2
fizz
4
buzz
fizz
7
8
fizz
buzz
11
fizz
13
14
fizzbuzz
16
17
fizz
19
buzz