Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: catasturslykid en 12 Agosto 2013, 19:58 pm



Título: No aparece nada en pantalla.
Publicado por: catasturslykid en 12 Agosto 2013, 19:58 pm
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:

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.