Ciao a tutti,
sto cercando di caricare un file .obj (contenente un modello 3D) con le OpenGL. Per fare questo ho creato una funzione che trova il numero dei vertici all'interno del file e poi crea una matrice con tutti i vertici.
Il problema è che la funzione che trova il numero dei vertici non funziona D:
la stavo testando con una console app, ecco il codice:
Il problema è che getline non funziona! mi restituisce 0 perchè il ciclo non parte proprio e quindi la variabile n non viene incrementata!! perchè?? helpcodice:#include "stdafx.h" #include <iostream> #include <string> #include <fstream> #include <stdio.h> using namespace std; int calcolaV(string file){ char *file_obj=new char[file.size()]; string riga=""; int n=0; for(int i=0; i<file.size(); i++){ file_obj[i]=file[i]; } fstream input; input.open(file_obj,fstream::in); while(getline(input,riga)){ if(riga[0]=='v' && riga[1]==' '){ n++; } } input.close(); return n; } int main(){ int a; int vertici=calcolaV("cubo.obj"); cout<<"Numero vertici: "<<vertici; cout<<"\nFine"; cin>>a; }
PS: se non avete notato, ho scritto alla fine:
cout<<"\nFine";
cin>>a;
perchè è l'unico modo per poter leggere i dati che ho scritto, altrimenti la finestra si chiude subito! perdonate la mia ignoranza, ma cosa dovrei scrivere? io ero abituato con il dev-c++ e scrivevo system("PAUSE"); ma ora sono passato a visual c++ 2010 e non so cosa scrivere