Привет, я пытаюсь прочитать файл Wavefront, который был создан с помощью Blender. Я положил копию этого файла в обозреватель решений. Когда я впервые попробовал скомпилировать, я получил следующее сообщение:
фатальная ошибка LNK1107: неверный или поврежденный файл: невозможно прочитать в 0x …
Казалось, что компилятор перепутал файлы .obj Блендера с некоторым другим форматом, который также использует окончание .obj. Решением было исключить файл из процесса сборки в его свойствах.
Теперь приложение компилируется, но данные не отображаются так, как я ожидал. Не уверен, что это проблема кода.
#include "stdafx.h"#include <iostream>
#include <stdlib.h>
#include <fstream>
#include <string>
using namespace std;
void ReadPrintFile(string _fileName)
{
std::string line;
std::ifstream fileStream (_fileName);
if (fileStream.is_open())
{
while (getline(fileStream,line))
{
cout << line << '\n';
}
fileStream.close();
}
else
{
cout << "Unable to read file";
}
}
int _tmain(int argc, _TCHAR* argv[])
{
ReadPrintFile("Drone.obj");
std::cin.get();
return 0;
}
Код не входит в оператор else. Файловый поток просто кажется пустым, и я напрямую переадресован cin.get();
заявление. Я знаю, что есть множество учебников о том, как анализировать .OBJ в C ++, но я хочу понять.
Хитрость заключалась не в том, чтобы скопировать файл в обозреватель решений, а в папку проекта.