đây là code hôm qua em sửa cho bạn Học, thấy kì kì. 2 chỗ em hỏi nằm ở dòng 35-37 và 58-59. @ltd
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#define MLEN 20
typedef struct PET
{
char type[MLEN];
char name[MLEN];
int HP;
int attack;
int defense;
int chisophu;
int nSkill;
char** skill;
PET * next;
};
typedef struct PET P;
void Capphat1(P *&DanhSach)
{
DanhSach = (P *)malloc(sizeof(P));
}
void Capphat2(char **&Skill)
{
Skill = (char **)calloc(4, sizeof(char));
for( int i = 0 ; i < 4 ; i++)
Skill[i] = (char *)calloc(19,sizeof(char));
}
void main()
{
// điểm thứ 1
P *a;
Capphat1(a);
P *head;
//
head=a;
int i;
FILE *DS = fopen("test.txt","rt");
while ( !feof(DS) )
{
fscanf(DS , "%s ", a->name);
fscanf(DS , "%s ", a->type);
fscanf(DS , "%d ", &a->HP);
fscanf(DS , "%d ", &a->attack);
fscanf(DS , "%d ", &a->defense);
fscanf(DS , "%d ", &a->chisophu);
fscanf(DS , "%d ", &a->nSkill);
Capphat2(a->skill);
for (i=0;i<4;i++)
fscanf(DS , "%s ", a->skill[i]);
if (feof(DS))
a->next=NULL;
else
{ //điểm thứ 2
Capphat1(a->next);
a=a->next;
}
}
fclose(DS);
a=head;
while (a!=NULL)
{
printf("\n%s", a->name);
printf("\n%s", a->type);
printf("\n%d", a->HP);
printf("\n%d", a->attack);
printf("\n%d", a->defense);
printf("\n%d", a->chisophu);
printf("\n%d", a->nSkill);
for (i=0;i<4;i++)
printf("\n%s ", a->skill[i]);
a=a->next;
}
getchar();
getchar();
}