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

Đề tài: Khai báo float trong cấu trúc?

  1. #1
    Ngày gia nhập
    09 2008
    Bài viết
    13

    Mặc định Khai báo float trong cấu trúc?

    Biến kiểu float mình đã gán vào biến tạm rùi nhưng vẫn bị lỗi khi xuất ra bạn nào biết thì chỉ dùm mình chỗ sai,giải thích dùm mình luôn thanks
    Code:
    #include<stdio.h>
    #include<conio.h>
    #include<alloc.h>
    
    typedef struct ct
    {
    float so;
    char chuoi[20];
    }sp;
    typedef struct ct2
    {
    sp data;
    struct ct2 *tiep;
    }ctsp;
    
    void nhap()
    {
    FILE *ff;sp *moi; float tam;
    ff=fopen("C:\\da.txt","w");
    char ch;
    do
    {
      moi=(sp*)malloc(sizeof(sp));
      printf("nhap so:");scanf("%f",&tam); tam=moi->so;
      printf("\nnhap chuoi:");fflush(stdin);gets(moi->chuoi);
      printf("\nban muon luu ko!");fflush(stdin);ch=getchar();
    
      if(ch=='c')
      {
      fwrite(&*moi,sizeof(sp),1,ff);
    
      }
      else
    
      break;
      printf("c/k");fflush(stdin);ch=getchar();
    }while(ch=='c');
    
      fclose(ff);
    }
    void xuatthuong()
    {
    FILE *ff;sp moi;
    ff=fopen("C:\\da.txt","r");
    while(fread(&moi,sizeof(sp),1,ff)>0)
    {
    printf("%f",moi.so);
    printf("%s",moi.chuoi);
    }
    fclose(ff);
    
    }
    
    
    void hiendata(ctsp *dau)
    {
    sp sp1;       float tam;
    while(dau!=NULL)
    {
    
     sp1=dau->data;
     dau=dau->tiep;
     printf("So:%f",tam); tam=sp1.so;
     printf("Chuoi:%s",sp1.chuoi);
    
    }
    
    
    }
    void doc(ctsp *&dau)
    {
     FILE *ff;
     sp moi;  ctsp *ct,*p=NULL;
     ff=fopen("C:\\da.txt","r");
    
    while(fread(&moi,sizeof(sp),1,ff)!=0)
    {
    
        ct=(ctsp*)malloc(sizeof(ctsp));
    
        ct->data=moi;
        ct->tiep=NULL;
    
       if(dau==NULL)
           {
    	dau=ct;
    	p=dau;
           }
    	else
    	{
    	 p->tiep=ct;
    	 p=ct;
    	}
    
    
    }
     fclose(ff);
     hiendata(dau);
    }
    
    void main()
    {
      ctsp *dau=NULL;
     clrscr();
    nhap();
    //xuatthuong();
    doc(dau);
    getch();
    }

  2. #2
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Mình đã sửa cho bạn rồi đây, còn cái code giải phóng bộ nhớ bạn tự làm nha, mình làm biếng quá.

    C Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3. #include<alloc.h>
    4.  
    5. typedef struct ct
    6. {
    7.     float so;
    8.     char chuoi[20];
    9. } sp;
    10.  
    11. typedef struct ct2
    12. {
    13.     sp data;
    14.     struct ct2 *tiep;
    15. } ctsp;
    16.  
    17. void nhap(ctsp *dau)
    18. {
    19.     ctsp *p = dau;
    20.     FILE *ff;
    21.     float tam;
    22.  
    23.     ff=fopen("da.txt","w");
    24.     char ch;
    25.  
    26.     do
    27.     {
    28.         p->tiep = NULL;
    29.         printf("nhap so : ");
    30.         scanf("%f",&tam);
    31.         p->data.so = tam;
    32.         printf("nhap chuoi : ");
    33.         fflush(stdin);
    34.         gets(p->data.chuoi);
    35.         printf("ban muon luu ko ? ");
    36.         fflush(stdin);
    37.         ch = getche();
    38.         printf("\n");
    39.  
    40.         if(ch=='c')
    41.         {
    42.             p = dau;
    43.             do
    44.             {
    45.                 fwrite((void *)&p->data,sizeof(sp),1,ff);
    46.                 p = p->tiep;
    47.             }
    48.             while (p != NULL);
    49.         }
    50.         else
    51.         {
    52.             p = p->tiep = (ctsp*)malloc(sizeof(ctsp));
    53.         }
    54.     }
    55.     while (ch != 'c');
    56.  
    57.     fclose(ff);
    58. }
    59.  
    60. void xuatthuong()
    61. {
    62.     sp moi;
    63.     FILE *ff;
    64.     ff=fopen("da.txt","r");
    65.  
    66.     while(fread(&moi,sizeof(sp),1,ff) > 0)
    67.     {
    68.         printf("%f %s\n",moi.so,moi.chuoi);
    69.     }
    70.  
    71.     fclose(ff);
    72. }
    73.  
    74.  
    75. void hiendata(ctsp *dau)
    76. {
    77.     ctsp *p = dau;
    78.     float tam;
    79.  
    80.     while(p != NULL)
    81.     {
    82.         printf("So : %f\nChuoi : %s\n",p->data.so,p->data.chuoi);
    83.         p = p->tiep;
    84.     }
    85. }
    86.  
    87. void doc(ctsp *dau)
    88. {
    89.     sp moi;
    90.     ctsp *p = dau;
    91.     int flag = 0;
    92.     FILE *ff;
    93.     ff=fopen("da.txt","r");
    94.  
    95.     while(fread(&moi,sizeof(sp),1,ff) > 0)
    96.     {
    97.         if (flag)
    98.             p = p->tiep = (ctsp *)malloc(sizeof(ctsp));
    99.  
    100.         p->data = moi;
    101.         p->tiep = NULL;
    102.       flag = 1;
    103.     }
    104.  
    105.     fclose(ff);
    106.     hiendata(dau);
    107. }
    108.  
    109. void main()
    110. {
    111.     ctsp dau;
    112.  
    113.     clrscr();
    114.     nhap(&dau);
    115.     xuatthuong();
    116.     doc(&dau);
    117.     getch();
    118. }
    Đã được chỉnh sửa lần cuối bởi meoconlongvang : 14-10-2008 lúc 10:57 AM.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

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

  1. Kỹ thuật C++ từ khóa item trong khai báo cấu trúc mảng của cây nhị phân có nghĩa gì?
    Gửi bởi quan92_cn2 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: 13-04-2012, 10:52 AM
  2. Cấu trúc dữ liệu Khai báo cấu trúc dữ liêu trong đề tài quản lý vật tư, cần làm những gì??
    Gửi bởi thanhluan11 trong diễn đàn Thắc mắc CTDL & Giải thuật
    Trả lời: 3
    Bài viết cuối: 03-04-2012, 08:46 AM
  3. Hàm trong C++ Không biết cách in ra màn hình khi khai báo public: float ttb
    Gửi bởi nanqua trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 3
    Bài viết cuối: 01-04-2012, 04:15 PM
  4. Kỹ thuật C Cách xóa 1 phần tử trong mảng cấu trúc được khai bao tĩnh
    Gửi bởi hungsao trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 16-01-2011, 03:41 AM
  5. Sự khác nhau giữa các khai báo int, void, float trong khai báo hàm?
    Gửi bởi toend2008 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 06-05-2009, 07:19 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