Code:
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
typedef struct
{
int cau; //vi tri cau (thu 1,2,3.....
int size; //cho biet kich thuoc 1 cau hoi
char nd[10000];
}cauhoi;
cauhoi dulieu[50];
int i=1;
//--------------------------------------------------------------------------
void napch(void)
{
char c;
int j;
FILE *f;
f=fopen("dulieu.txt","rb");
if(f==NULL){//Kiem Tra Ton Tai FILE
printf("\n khong mo duoc du lieu ");
getch();
exit(1);
}
c=!EOF;
while(c!=EOF)//Su Ly Viec Nap Du Lieu u File.
{ j=0;
dulieu[i].cau=i;
while(c!=EOF&&(c=fgetc(f))!='*')
{
dulieu[i].nd[j]=c;
/*fseek(f,0,1); Cai nay khong biet de lam gi?
dulieu[i].size=ftell(f);*/
j++;
}
i++;
}
}
//---------------------------------------------------------------------------
main()
{
int j,k;
napch();
for(j=1;j<i;j++){
printf("\n cau %d",dulieu[j].cau);
printf("\n dung luong :%d",sizeof(dulieu[j]));
/*Cau truc dulieu cua cau dau co' dong dau nen kich thuot cau nao cung bang nhau*/
printf("\n noi dung : \n%s",dulieu[j].nd);
}
getch();
}
Test bài cậu mệt thiệt: (không ghi chú+không canh hàng)
Lời khuyên:
nội dung nên là một con trỏ. ==>xây dựng lại cấu trúc dữ liệu
biến size không cần viết thêm hàm getsize(const cauhoi* h) {return sizeof(char)*strlen(h->nd);}
biến cau trong cấu trúc vô nghĩa không linh hoạt, nếu muốn tường minh cậu thêm macau thi hay hơn nhưng tôi nghĩ trong trường hợp này không cần.
Tóm lại Edit cấu trúc của cậu là vậy nè;
Code:
typedef struct cauhoi{
char *nd;
};