Я пишу код на C ++, и мне нужно прочитать файл, проблема в том, что моя файловая структура немного сложна, и я просто не могу понять, как использовать свой ifstream для его чтения. Я думаю, что перепробовал все возможные комбинации ... но это просто не работает, я думаю, что я делаю что-то не так, но я не могу понять это.
Вот минимальное воспроизведение моей проблемы.
структура:
.
├── build
├── CMakeLists.txt
└── src
├── file
│ └── test.txt
├── load
│ └── loadfile.hpp
└── main.cpp
CMakeLists.txt:
cmake_minimum_required(VERSION 3.10)
project(BaseProject)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_FLAGS "-O3 -g -std=c++17 -Wall -Wextra -pedantic")
file(GLOB SRC
"src/*.h"
"src/*.hpp"
"src/load/*.h"
"src/load/*.hpp"
"src/load/*.cpp"
)
add_executable(exec ${SRC} src/main.cpp)
main. cpp
#include "load/loadfile.hpp"
int main(){
load();
return 0;
}
test.txt: (не очень хорошо, но не очень)
test
loadfile.hpp
#include <fstream>
#include <string>
#include <iostream>
void loadFile(const std::string& file){
std::ifstream i(file, std::ifstream::in);
std::string str;
i >> str;
std::cerr << str;
i.close();
}
void load(){
loadFile("../file/test.txt");
}
вывод пуст и программа завершается нормально.