Чтение из файла 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

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