Чтение ppm файла C ++

0

Я пытаюсь прочитать файл ppm и хранить его содержимое в массиве. Я начинаю, пытаясь отобразить его, но я не могу ничего выводить.

char magic;
ifstream myfile;
myfile.open(file,ios::in | ios::binary);
  if (!myfile.is_open()) 
   {
      cout<<"Failed to open";
   }
myfile.get(magic);
if(myfile) cout <<magic <<"not working";
myfile.close();

Файл открыт, но я не могу его прочитать. Я также попытался сделать вывод, используя << операторов, но и не повезло.

  • 1
    Когда вы говорите, что «не можете прочитать», что вы имеете в виду? Вы ничего не видите, когда вы cout << магия?
  • 0
    Какой тип PPM? Какое магическое число вы ожидаете, P1 -> P6?
Показать ещё 1 комментарий
Теги:
fstream
ifstream
ppm

1 ответ

0
Лучший ответ

Вероятно, ваш файл читается, но ваша переменная не хранит все значения в нем. Я предлагаю добавить это вместо myfile.get(magic):

char magic;
ifstream myfile;

if (!myfile.open(file, ios::in | ios::binary)
{
    cout << "Failed to open" << endl;
}

vector<char> magicNumbers;
while (myfile >> magic)
{
    magicNumbers.push_back(magic);
}
myfile.close();

Как вы можете видеть, вы должны хранить все значения в каком-то массиве, здесь я использовал вектор для гибкости. Остальное зависит от тебя.

  • 0
    Это работало хорошо, хотя я думаю, что у меня также была проблема с моей фотографией ppm, поэтому я скачал новую. Спасибо @Vormeph!
  • 0
    Извините, еще один вопрос @Vormeph, можете ли вы объяснить, что делает "while (myfile >> magic)"?
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню