Я пытаюсь прочитать файл в C ++, используя относительный путь. Я знаю, что это было проблемой в прошлом, но надеялся, что новая библиотека std :: filesystem поможет. Тем не менее я не могу заставить его работать.
У меня есть простой файл test.csv.
1 2
3 4
5 6
и мой тест. cpp выглядит следующим образом:
#include <iostream>
#include <filesystem>
#include <cstdlib>
#include <fstream>
int main(void)
{
std::filesystem::path p{"./test.csv"};
std::filesystem::path p2{"../test.csv"};
// file in same path
auto file = std::ifstream{p};
auto line = std::string();
// read file line by line
auto a = 0, b = 0;
while (file >> a >> b) {
std::cout<< a << ' ' << b << std::endl;
}
file.close();
// try the same for the file in the parent_dir
file.open(p2);
// read file line by line
a = 0, b = 0;
while (file >> a >> b){
std::cout<< a << ' ' << b << std::endl;
}
file.close();
}
первый путь p отлично загружает файл и печатает вывод. Второй (относительный путь к родительскому каталогу не жалуется, но ничего не делает во время выполнения. Как правильно читать файлы по относительным путям?