Всем привет! У меня возникла очень странная ситуация. В одном проекте цикл выполняется как было задумано, в другом все наоборот.
Вот мой код:
#include "OBJLoader.h"
void OBJLoader::loadFile(std::string way)
{
fin.open(way);
if (!fin.is_open()) {
std::cout <<"ошибка открытия файла: "<<way << std::endl;
}
else {
std::cout << "meow" << way << std::endl;
while (!fin.eof()) {
fin >> read;
//считываю строки которые начинаются с f (их всего 2)
if (read == "f") {
for (int i = 0; i < 3; i++) {
fin >> Index;
std::cout << "fv " << Index << " ";
fin.ignore(1, '/');
fin >> Index;
std::cout << "ft " << Index << " ";
fin.ignore(1, '/');
fin >> Index;
std::cout << "fn " << Index << std::endl;
}
}
}
fin.close();
}
}
файл:
# Blender v2.90.0 OBJ File: 'plita.blend'
# www.blender.org
mtllib plita.mtl
o Cube
v 1.000000 0.000000 -1.000000
v -1.000000 0.000000 -1.000000
v 1.000000 0.000000 1.000000
v -1.000000 0.000000 1.000000
vt 1.000000 0.000000
vt 0.000000 1.000000
vt 0.000000 0.000000
vt 1.000000 1.000000
vn 0.0000 1.0000 0.0000
g Cube_Cube_Material
usemtl Material
s off
f 3/1/1 2/2/1 4/3/1
f 3/1/1 1/4/1 2/2/1
То что выводит метод в консоль:
fv 3 ft 1 fn 1
fv 2 ft 2 fn 1
fv 4 ft 3 fn 1
fv 3 ft 1 fn 1
fv 1 ft 4 fn 1
fv 2 ft 2 fn 1
//это я не знаю откуда , если этот код(который выше) вставляю в другой проект то выводится все как надо(без этих строк где только еденицы)
fv 1 ft 1 fn 1
fv 1 ft 1 fn 1
fv 1 ft 1 fn 1
Скажите пожалуйста откуда эти строки взялись и как сделать чтобы все работало как надо?