No aparece nada en pantalla.

Iniciado por catasturslykid, 12 Agosto 2013, 19:58 PM

0 Miembros y 1 Visitante están viendo este tema.

catasturslykid

Hola foreros! Soy nuevo en el foro y en C también jaja

Me llamo Albert y soy estudiante de Ingeniería.

El caso es que tengo que hacer un programa pero no se porque, no me funciona del todo bien.

Se trata de un juego, en el que el usuario introduce el nombre del personaje que quiere cargar, el cual está guardado en un archivo que se llama igual que el personaje.

En este caso, el personaje se llama Albert.

El archivo contiene: nombre del personaje, clase, experiencia y nivel.

Cuando leo la clase, llamo a una función que identifica la clase dentro del array de clases y me muestra el ataque, defensa y vida de dicha clase.

Así pues, después de leer los datos de la clase, los asigno al personaje.

Una vez hecho esto, voy al menú de personaje donde podré empezar la "aventura".

El problema es que, cuando leo los datos de la clase, devuelvo un INT que me indica en que posición está.
Y a partir de ahí, no aparece nada por pantalla... ni el menú, ni el printf que pongo a continuación para ver si funciona.. nada.

¿Que debo hacer?

Aquí el código:

#include "total.h"
 
 
 
  void carregaPersonatge(FILE *h, Classe *classes, int nClas,int nEnemics, Enemic *enemics){
 
  Personatge personatge;
  char strNom[50], strNomc[50], strOmet[100];
  int nVida = 0, nAtac = 0, nExp = 0, nNivell = 0, nQuina = -1;


     printf("Nom del personatge?:  ");
     scanf("%s",strNom);
     h = fopen(strNom,"r"); //A PARTIR DE AQUI NO SALE NADA
     printf("HOLA\n");
     if( h == NULL){
         printf("Error!\n");
         menuPrincipal(nClas, nEnemics, classes, enemics);//En cas d'error, tornem al menu principal.
     }
     else{

         printf("NICE\n");

         fscanf(h,"%s",strOmet); //El nom del personatge ja el tenim d'abans.
         printf("%s\n",strOmet); //BORRAR
         fscanf(h,"%s", strNomc); //Llegim el nom de la classe
         printf("%s\n",strNomc); //BORRAR
         fscanf(h,"%d",&nNivell); //Llegim el nivell del personatge
         fscanf(h,"%d",&nExp); //Llegim la experiencia del personatge
         personatge.nExperiencia = nExp;
         personatge.nNivell = nNivell;
         strcpy(personatge.strNom, strNom);
         printf("%d\n",personatge.nNivell);
         printf("%d\n",personatge.nExperiencia);
         nQuina = dadesClasse(strNomc,nClas,classes); //Trobem quina es la classe del personatge.
         printf("%d\n",&nQuina); //BORRAR
         personatge.nVida = classes[nQuina].nVida + nNivell*50;
         personatge.nAtac = classes[nQuina].nAtac + nNivell*10;
         personatge.nDefensa = classes[nQuina].nDefensa + nNivell*5;
         strcpy(personatge.classe.strNom, classes[nQuina].strNom);
         printf("%s\n",personatge.classe.strNom); //BORRAR
         menuPersonatge(personatge, enemics, h, nEnemics, nClas, classes);


     }
     fclose(h);
 }

 int dadesClasse(char strNomc[50], int nClas, Classe *classes){

 int i = 0;
 int nReturn = -1;



     while( i < nClas){
         if(strcmp(classes[i].strNom, strNomc) == 0){
             nReturn = i;
        }
     }
     return nReturn;
}


¡Gracias de antemano!  ;D



Me dejé un i++ jajaja Ya está, gracias.