Я пытаюсь написать программу на c ++, которая читает какой-нибудь файл .txt, и я пробовал несколько способов открыть файл и проверить, существует ли он, но ни один из них не компилируется. Ниже приведены выдержки из моего кода:
#include <fstream>
#include <string>
#include <filesystem>
#include "read_graph.hpp"
ReadGraph::ReadGraph(const std::string filename) : _filename(filename) {}
bool ReadGraph::exists() {
std::ifstream = gfile; // case (1)
std::filesystem::path p(_filename); // case (2)
}
bool ReadGraph::readable() { return false; }
int main() { return 0; }
Ниже приводится мой CMakeLists.txt
cmake_minimum_required(VERSION 3.14)
project(graph_generator VERSION 0.1 LANGUAGES CXX)
add_library(read_graph
read_graph.cpp
)
target_compile_features(read_graph PUBLIC cxx_std_20)
add_executable(exec
read_graph.cpp
)
Когда я пытаюсь скомпилировать case (1) (т.е. case (2) комментируется), Я получаю следующую ошибку: error: expected unqualified-id std::ifstream = gfile;
.
Когда я пытаюсь скомпилировать вариант (2), я получаю error: no member named 'filesystem' in namespace 'std' std::filesystem::path p(_filename);
Я не понимаю, что здесь происходит, так какЯ включил все правильные заголовки, и это стандартные библиотеки в C ++ 17 и 20, поэтому, насколько я понимаю, мне не нужно передавать дополнительные флаги в мои CMakeLists.
Заранее спасибо