Thanks!
Our teachers said that we cannot copy-paste from PuTTY to Windows... Thanks again!
Let's paste all the code:
Code:
#include "total.h"
void main(int argc, char* argv[]){ //S'executa possant: practica3 fitxer_classes fitxer_enemics
FILE *f, *g;
int nCorrecte = 0, nOpcio, nEnemics, nClas;
Classe *classes;
Enemic *enemics;
srand(time(NULL));
f = fopen (argv[1],"r");
if (f == NULL){
printf("Error!(1)\n");
}
else{
g = fopen (argv[2],"r");
if( g == NULL){
printf("Error!(2)\n");
}
else{
carregaClasses(f,&classes,&nClas);
carregaEnemics(g,&enemics,&nEnemics);
printf("%s", enemics[5].strNom);
menuPrincipal(nClas, nEnemics, classes, enemics);
}
}
fclose(f);
fclose(g);
}
Code:
#include "total.h"
void menuPrincipal(int nClas, int nEnemics, Classe *classes, Enemic *enemics){
FILE *h;
int nCorrecte = 0, nOpcio;
while (nCorrecte == 0){
printf(" Menu Principal\n");
printf("1- Crear Personatge Nou\n");
printf("2- Carregar Personatge\n");
printf("3- Sortir\n\n");
printf("Opcio? ");
scanf("%d",&nOpcio);
if( nOpcio == 1 || nOpcio == 2 || nOpcio ==3){
nCorrecte = 1;
}
else{
printf("Error! Escull una opcio correcta!\n");
}
if( nCorrecte == 1){
switch(nOpcio){
case 1: creaPersonatge(classes, nClas, &h, nEnemics, enemics);
break;
case 2: carregaPersonatge(&h,classes,nClas,nEnemics,enemics);
break;
default: exit(1);
break;
}
}
}
}
Code:
#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, nAtac, nExp, nNivell, nQuina = 0;
printf("Nom del personatge?: ");
scanf("%s",strNom);
h = fopen(strNom,"r");
printf("HOLA\n");
if( h == NULL){
printf("Error!\n");
menuPrincipal(nClas, nEnemics, classes, enemics);//Return to the main menu.
}
else{
printf("NICE\n");
fscanf(h,"%s",strOmet);
printf("%s\n",strOmet); //Only to check
fscanf(h,"%s", strNomc);
printf("%s\n",strNomc); //Only to check
fscanf(h,"%d",&nNivell);
fscanf(h,"%d",&nExp);
personatge.nExperiencia = nExp;
personatge.nNivell = nNivell;
strcpy(personatge.strNom, strNom);
printf("%d\n",personatge.nNivell); //Only to check
nQuina = dadesClasse(strNomc,nClas,classes);
printf("%d\n",&nQuina); //Only to check -> Nothing happens.
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); //Only to check
menuPersonatge(personatge, enemics, h, nEnemics, nClas, classes);
}
fclose(h);
}
And as I said, after print personatge.nNivell nothing appears on the screen.