El problema que es que siempre me escribe la misma linea en el fichero que quiero generar.
El códgio que utilizo es:
void TreatLodFile::ReadLodFile()
{
int pt, i, j;
unsigned int Vertex0, Vertex1, modVertex;
unsigned int n0, n1, n2, Triangulo0, Triangulo1;
FILE *fp;
char fileLOD[80], buff[80];
Step aux;
//pt=sprintf(fileLOD,"..\\media\\models\\bunny.lod") ; //%s.lod",Models[gMesh]);
pt=sprintf(fileLOD,"./bunny.txt"); //%s.lod",Models[gMesh]);
fp = fopen(fileLOD, "r");
printf("\n cadena %s\n", fileLOD);
system("pause");
if( fp == NULL)
{
printf("\nError: No se ha podido abrir el fichero correctamente\n");
system("pause");
exit(1);
}
j = 2;
while(!feof(fp))
{
fgets(buff, 80, fp);
printf("\nLA CADENA ES: %s\n", buff);
if( *buff == 'v' && *(buff+1) == '%')
{
sscanf(buff+j,"%u%u%u%u%u%u%u", &Vertex0, &Vertex1, &n0, &n1, &n2, &Triangulo0, &Triangulo1);
aux.mV0 = Vertex0;
aux.mV1 = Vertex1;
aux.mT0 = Triangulo0;
aux.mT1 = Triangulo1;
printf("\nvertice0 -> %u \nvertice1 -> %u\ntrinagulo0 -> %u\ntriangulo1 -> %u",aux.mV0,aux.mV1,aux.mT0,aux.mT1);
//j+=6;
//sscanf(buff+j,"%u%u", &Triangulo0, &Triangulo1);
//aux.mT0 = Triangulo0;
//aux.mT1 = Triangulo1;
//printf("\nTriangulo0 -> %u \nTriangulo1 -> %u\n",aux.mT0,aux.mT1);
j++;
while(*(buff+j) != '&') j++;
j++;
while (*(buff+j) != NULL)
{
if(*(buff+j)!='\r')
{
sscanf((buff+j), "%u", &modVertex);
printf("\nmodVertex -> %u\n", modVertex);
aux.mModfaces.push_back(modVertex);
j=j+2;
}
//else
// j++;
}
} //fin if v%
this->LodInfo.push_back(aux);
*buff = NULL;
} //fin while feof
}
void TreatLodFile::CreateFile()
{
int i,k;
FILE *newFile;
Step aux;
//newFile = fopen("..\\media\\models\\archivoPrueba.txt", "w");
newFile = fopen("./archivoPrueba.txt", "a");
for (i=0;i<this->LodInfo.size();i++)
{
aux.mV0 = this->LodInfo[i].mV0;
aux.mV1 = this->LodInfo[i].mV1;
aux.mT0 = this->LodInfo[i].mT0;
aux.mT1 = this->LodInfo[i].mT1;
fprintf(newFile, "%u %u %u %u & ", aux.mV0, aux.mV1, aux.mT0, aux.mT1);
for(k=0;k<this->LodInfo[i].mModfaces.size();k++)
{
//aux.mModfaces.push_back(this->LodInfo[i].mModfaces[k]);
fprintf(newFile,"%u ", this->LodInfo[i].mModfaces[k]);
}
fprintf(newFile, "\n");
}
fclose(newFile);
}
El archivo del cual lee tiene la siguiente informacion:
v% 44 55 88 66 54 21 45 & 12 47 41
v% 23 45 22 33 09 12 35 & 98 74 43
me guarda en el archivo que genero lo siguiente:
44 55 21 45 & 12 2 47 41 1
44 55 21 45 & 12 2 47 41 1 1 1 1
44 55 21 45 & 12 2 47 41 1 1 1 1
Alguien sabe xq siempre me guarda la misma linea y los 1s de mas?????
Gracias de antemano
