Чтение из файла на c++
Возникла проблема с чтением текста из файла на c++. Как я понял, чтобы исполняемый файл нашел нужный документ, необходимо узнать абсолютный путь до исполняемого файла и сформировать абсолютный путь до нужного документа. Неужели нет менее костыльного способа сделать это? Такое решение используется повсеместно? Может быть, проще перенести текущую директорию в папку приложения, если это возможно, и использовать относительный путь?
Ответы (1 шт):
Автор решения: schmidt9
→ Ссылка
Если файл находится в той же директории, что и консольное приложение, то путь можно получить так (без необходимости переходить сначала в каталог с приложением)
#include <iostream>
#include <string>
int main(int argc, const char * argv[]) {
auto appPath = std::string(argv[0]);
auto lastSlashIndex = appPath.find_last_of("\\/");
if (lastSlashIndex == std::string::npos) {
return -1;
}
appPath.erase(appPath.begin() + lastSlashIndex, appPath.end());
std::cout << appPath.c_str() << std::endl;
auto filePath = appPath + "/test.txt";
std::cout << filePath.c_str() << std::endl;
// read file at filePath ...
return 0;
}