Từ 1 tới 6 trên tổng số 6 kết quả

Đề tài: chuyển dữ liệu từ file sang file thông qua stack,lỗi không tương thích kiểu,help

  1. #1
    Ngày gia nhập
    03 2011
    Bài viết
    9

    Wink chuyển dữ liệu từ file sang file thông qua stack,lỗi không tương thích kiểu,help

    Code:
    #include<stdio.h>
    #define max 20
    #define max1 50
    typedef struct phoneaddress{
    	char name[20];
    	char tell[11];
    	char email[25];
    }phoneaddress;
    struct stack{
    	phoneaddress data;
    	struct stack *link;
    	};
    //khai trien stack
    struct stack *push(struct stack *p, phoneaddress value)
    {
       	struct stack *temp;
       	temp=(struct stack *)malloc(sizeof(struct stack));
    	if(temp==NULL) 
    	 {
         		 printf("No Memory available Error\n");
          		 exit(0);
    	}
    	temp->data=value;
       	/*temp->data.name = value.name;
       	temp->data.tell = value.tell;
       	temp->data.email = value.email;*/
       	temp->link = p;
       	p = temp;
       return(p);
    }
    struct stack *pop(struct stack *p,phoneaddress *val)
    {
    	struct stack *temp;
    	if(p==NULL)
    	return 0;
    	else
    	{
    		*val=p->data;
    		/*(*val).name=p->data.name;
    		(*val).tell=p->data.tell;
    		(*val).email=p->data.email;*/
    		temp=p;
    		p=p->link;
    		free(temp);
    		return p;
    	}
    }
    ////////////////////////////////////////////////////////////
    int main (void){
    	FILE* fp,*fp1;
    	phoneaddress db[max],db1[max];
    	int i,n,m;
    	phoneaddress val;
    	struct stack *top1=NULL;
    	//tao file chua du lieu danh ba......................
    	printf("nhap vao bao nhieu contact:");
    	scanf("%d",&n);
    	for(i=0;i<n;i++){
    		printf("name:");scanf("%s",db[i].name);
    		printf("sdt:");scanf("%s",db[i].tell);
    		printf("email:");scanf("%s",db[i].email);
    	}
    	if((fp=fopen("danhba.dat","w+b"))==NULL){
    		printf("khong mo duoc file.");
    		return 0;
    	}
    	fwrite(db,sizeof(phoneaddress),n,fp);
    	fclose(fp);
    //push du lieu tu file vao stack...................
    	fread(db,sizeof(phoneaddress),n,fp);
    	for(i=0;i<n;i++){
    	push(top1,db[i]);
    	}
    	fclose(fp);
    	//ghi du lieu vao file thong qua stack...........
    	if((fp1=fopen("danhba1.dat","w+b"))==NULL){
    		printf("khong mo dc file.");
    		return 1;
    	}
    	while(top1!=NULL){
    	pop(top1,&val);
    	fwrite(&val,sizeof(phoneaddress),1,fp1);
    	}
    	//////////////////////////////////////
    	printf("doc du lieu tu file moi.\n");
    	fread(db1,sizeof(phoneaddress),n,fp1);
    	for(i=0;i<n;i++){
    		printf("%s\t",db1[i].name);
    		printf("%s\t",db1[i].tell);
    		printf("%s\n",db1[i].email);
    		printf("---------------------------------\n");
    }
    fclose(fp1);
    getch();
    }
    mình sai chỗ nào giúp mình với.
    code chạy được nhưng khi thực hiên thao tác in data từ file mới thì gặp lỗi
    mình nghĩ do phần code đỏ,nhưng hok biết sửa ntn.
    Đã được chỉnh sửa lần cuối bởi manta : 08-10-2011 lúc 03:48 PM. Lý do: sửa code

  2. #2
    Ngày gia nhập
    03 2011
    Bài viết
    9

    không ai trả lời giúp mình à.hic

  3. #3
    Ngày gia nhập
    07 2011
    Bài viết
    160

    Lỗi báo chỗ nào, dòng nào, bạn nói rõ, ghi hẳn bằng chữ khác màu chỗ đó trong code, thì sẽ có người giúp thôi

  4. #4
    Ngày gia nhập
    03 2011
    Bài viết
    9

    đã sửa.ai vào giúp mình đi...........

  5. #5
    Ngày gia nhập
    07 2011
    Bài viết
    160

    Chẳng hiểu bạn làm cái gì nữa, lúc thì mở file danhba.dat lúc thì mở file danhba1.dat
    file danhba.dat thì ghi, đóng xong rồi lại đọc? Đóng rồi, muốn đọc thì phải mở lại chứ

  6. #6
    Ngày gia nhập
    03 2011
    Bài viết
    9

    Mặc định chuyển dữ liệu từ file sang file thông qua stack,lỗi không tương thích kiểu,help

    đây là hai bài:bài 1 tạo 1 danhba dt,ghi vào trong file.
    bài 2 là ghi dữ liệu từ fileA vào file B thông qua stack.
    mình làm gộp vào ha.
    đầu tiên mình tạo danhba.dat để ghi dữ liệu vào đó
    sau đó close danhba.dat(xong bài 1)
    tiếp mờ lại file danhba.dat->ghi dữ liệu ra stack->từ stack push vào trong file danhba1.dat
    cuối cùng đọc lại dữ liệu từ file stack ra.
    ý tưởng của mình là thế..........

Các đề tài tương tự

  1. Chuyển 1 file bất kì sang dạng mã hex (file ảnh, game,class,...)
    Gửi bởi virus trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 13
    Bài viết cuối: 16-03-2013, 12:58 PM
  2. Cấu trúc dữ liệu Chuyển các phần tử từ stack này sang stack kia như thế nào?
    Gửi bởi rukawa1184 trong diễn đàn Thắc mắc CTDL & Giải thuật
    Trả lời: 9
    Bài viết cuối: 06-12-2011, 06:52 PM
  3. Thuật toán chuyển từ file flash sang file pdf?
    Gửi bởi thitgaluoc trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 21-07-2011, 03:25 PM
  4. Chuyển 1 file html 25mb sang file word như thế nào ?
    Gửi bởi hoanglinh9466 trong diễn đàn Thắc mắc chung
    Trả lời: 3
    Bài viết cuối: 26-06-2011, 11:28 PM
  5. Chuyển lưu file và thêm file từ C sang C++
    Gửi bởi thangbsb trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 20-06-2009, 08:04 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn