std::ifstream fin;
fin.open("file.txt", std::ios::in);
std::cout << fin.is_open();
Этот код печатает false
, поэтому файл не открывается. Как проверить, почему это так. Возможно получить сообщение об ошибке от объекта fin
? Я предполагаю, что причина в том, что файл открыт уже для записи. Но я хочу открыть его для чтения. Можно ли открыть файл как для чтения, так и для записи?Как проверить, почему файл не открывается?
Я использую linux. С strerror(errno)
Я получаю ошибку Нет такого файла или каталога, но я файл существует. Может быть, ошибка связана с тем, что она уже открыта с использованием другого объекта? Он уже открыт с использованием API C, поэтому fin
не может открыть его. Как открыть файл, который уже открыт?
В C++ я бы использовал функцию [make_error_code] (http://www.cplusplus.com/reference/ios/io_errc/make_error_code/). –
Каков тип 'fin'? – andre
Файл не существует там, где вы ожидаете его. Проверьте местоположение или используйте 'std :: ifstream fin (" file.txt ")' для его создания в первую очередь. – andre