Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- // size_of_name(int)|name(str)|group(int)|size_of_faknum|fak_num(str)
- void readFile(int *num_of_records, char ***name, int **group, char ***fak_num, FILE *fp){
- int size;
- int allocated_elements = 5;
- int counter=0;
- *name = (char**)malloc(sizeof(int)*allocated_elements);
- *group = (int*)malloc(sizeof(int)*allocated_elements);
- *fak_num = (char**)malloc(sizeof(int)*allocated_elements);
- while(1){
- if(counter>=allocated_elements){
- allocated_elements*=2;
- *name = (char**)realloc(*name, sizeof(int)*allocated_elements);
- *group = (int*)realloc(*group, sizeof(int)*allocated_elements);
- *fak_num = (char**)realloc(*fak_num, sizeof(int)*allocated_elements);
- }
- if(fread(&size, sizeof(int), 1, fp)<=0){
- break;
- }
- name[0][counter] = (char*)malloc(size+1);
- if(fread(name[0][counter], sizeof(char), size, fp)<=0){
- break;
- }
- name[0][counter][size]='\0';
- if(fread(&group[0][counter], sizeof(int), 1, fp)<=0){
- break;
- }
- if(fread(&size, sizeof(int), 1, fp)<=0){
- break;
- }
- fak_num[0][counter] = malloc(size+1);
- printf("%d %d\n\n", counter, size);
- if(fread(fak_num[0][counter], sizeof(char), size, fp)<=0){
- break;
- }
- fak_num[0][counter][size]='\0';
- counter++;
- }
- }
- void writeFile(FILE *fp){
- int i=5;
- char name[5] = "dadad";
- int group = 50;
- int j=6;
- char fak_num[6] = "123456";
- fwrite(&i, sizeof(int), 1, fp);
- fwrite(name, sizeof(char), 5, fp);
- fwrite(&group, sizeof(int), 1, fp);
- fwrite(&j, sizeof(int), 1, fp);
- fwrite(fak_num, sizeof(char), 6, fp);
- }
- int main(){
- int num_of_records;
- char **name;
- int *group;
- char **fak_num;
- FILE *fp;
- fp = fopen("file.bin", "rb");
- readFile(&num_of_records, &name, &group, &fak_num, fp);
- //fp = fopen("file.bin", "wb");
- //writeFile(fp);
- //writeFile(fp);
- //writeFile(fp);writeFile(fp);
- int i;
- for(i=0; i<4; i++){
- printf("%s %d %s\n", name[i], group[i], fak_num[i]);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement