Mình có một bài tập như sau

Tạo file phone.dat theo thông tin trong danh bạ điện thoại của bản thân (20 số liên lạc)
Viết chương trình filesplit nhận 4 tham số: tên file và số các liên lạc muốn tách, tên 2 file tách,

ví dụ : filesplit phone.dat 10 phone1.dat phone2.dat

Sau đó viết chương trình mergefile theo cú pháp
filemerge phone1.dat phone2.dat
viết chương trình fileread để độc các file có khuôn dạng .dat nói trên. Dùng chương trình trên để kiêm tra kết quả
Với cấu trúc của danh bạ như thế này
C Code:
  1. typedef struct phoneaddress
  2. {
  3. char name[20];
  4. char tel[20];
  5. char email[25];
  6. } fb;

2 phần trên mình làm được rồi, còn phần cuối cùng là tạo chương trình fileread mình làm như sau
C Code:
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. typedef struct phoneaddress
  6. {
  7. char name[20];
  8. char tel[20];
  9. char email[25];
  10. } fb;
  11.  
  12. int main(int argc,char *argv[])
  13. {
  14.     FILE *fptr;
  15.     char *filename;
  16.     int irc, i=0, count=0;
  17.     fb phone_arr[100];
  18.    
  19.     if (argc != 2)
  20.     {
  21.         printf("\nWrong number of arguments!\nSyntax : fileread <filename>\n");
  22.         return 0;
  23.     }
  24.    
  25.     filename = argv[1];
  26.     if ((fptr = fopen(filename,"r+b")) == NULL)
  27.     {
  28.         printf("Can not open %s!\n",filename);
  29.         return 0;
  30.     }
  31.     else
  32.     {
  33.         while (feof(fptr) == 0)//Kiểm tra xem đã dịch con trỏ hết file chưa
  34.         {
  35.             if (fseek(fptr,1*sizeof(fb),SEEK_CUR) != 0)//Dịch con trỏ mỗi lần một block từ vị trí hiện tại cho đến khi hết file
  36.             {
  37.                 printf("\nfseek failed!");
  38.                 return 0;
  39.             }
  40.             count++;//Tính ra số lượng phần tử trong file
  41.         }
  42.         irc = fread(phone_arr,sizeof(fb),count,fptr);//Đọc tất cả phần tử trong file
  43.         printf("\nfread return code = %d!",irc);
  44.         for (i=0; i<count; i++)//In ra màn hình
  45.             printf("%s  %s  %s\n",phone_arr[i].name,phone_arr[i].tel,phone_arr[i].email);
  46.     }
  47.     return 0;
  48. }

Khi cho chạy thì không chạy được, mình vẫn chưa tìm ra lỗi sai ở đâu
Bạn nào biết giúp mình nhé
Cảm ơn