Я использую Visual Studio 2013ifstream не в состоянии открыть
Так что я должен открыть файл .ppm изображения и сделать какую-то работу на нем, но ifstream я пытаюсь использовать для чтения данных не удается открыть файл изображения. Я уверен, что файл изображения находится в рабочем каталоге (я создал и прочитал некоторые простые .txt-файлы, чтобы убедиться). И даже после чрезмерного исследования я не могу понять, что происходит.
Вот соответствующий код
EDIT: Я добавил еще немного кода, чтобы получить представление о том, что я пытаюсь сделать
Image * PPMImageReader::read(std::string filename){
std::string line;
int width, height, max_val;
std::ifstream src(filename, std::ios_base::binary);
if (src.fail()) { //failbit is always set but not badbit
perror("Logical error on i/o operation. failbit was set\n");
if (src.bad())
perror("Read/writing error on i/o operation. badbit was set");
}
if (!src.is_open()) { //and of course this return true
printf("File was not opened\n");
exit(1);
}
//Edited
getline(src, line, '\n');
if (line.empty())
getline(src, line);
if (line.find("P6") == std::string::npos) {
printf("wrong format\n");
exit(1);
}
Я уверен, что путь к файлу неверен. Можете ли вы попробовать с жестким кодированием абсолютного пути? Даже если у вас есть файл в рабочем каталоге, каталог запуска приложения может отличаться. –
@Digital_Reality Он работает с использованием абсолютного пути, но это не очень удобно, так как имя файла является аргументом командной строки. Извините мое невежество, но что такое каталог запуска? – Velix