Невозможно открыть .txt файл - PullRequest
0 голосов
/ 20 февраля 2020
std::ifstream infile;   
infile.open("example.txt");

if (!infile.is_open()) {        
   std::cout << "can't open" << std::endl;  
}

Я прочитал это: не удалось открыть поток файлов c ++ и попытался использовать полный путь infile.open("~/projects/example.txt");

Текстовый файл находится в той же папке, где .cpp / .hpp файлов находятся.

В чем еще может быть проблема?

Ответы [ 2 ]

1 голос
/ 20 февраля 2020

Однажды у меня была такая же проблема на Windows. Проблема заключалась в том, что фактическое имя файла было «example.txt.txt», но Window Explorer был настроен (по умолчанию) для скрытия расширений файлов.

Простым решением является использование библиотеки файловой системы c ++ 17. Например, current_path вернет то, что обещает его имя. Или напишите простую функцию, которая будет перечислять текущее содержимое пути (см. Пример на cppreference, https://en.cppreference.com/w/cpp/experimental/fs/directory_iterator). Или создайте файл с похожим именем, например, __example__.txt и посмотрите, где он был создан и под каким именем он сообщается менеджером вашей файловой системы.

Если это Linux, попробуйте запустить программу под strace (strace myprog myoptions).

1 голос
/ 20 февраля 2020

попробуйте "realpath ~ / projects / example.txt", который покажет вам реальный путь к вашему файлу, а затем используйте этот реальный путь в вашем cpp

...