Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,855 questions

51,776 answers

573 users

How to write and read class objects to binary file in C

2 Answers

0 votes
#include <stdio.h>
 
typedef struct product {
    long pcode;
    char pname[100];
    double price;
} product;
 
int main()
{
    product obj1 = {.pcode = 98742,
                    .pname = "Dell XPS 15 laptop 15.6 inch",
                    .price = 1964.43
    };
    product obj2 = {.pcode = 67398,
                    .pname = "Dell XPS 13 7390 Laptop 13.3 inch",
                    .price = 1499.99
    };
    product obj3 = {.pcode = 79913,
                    .pname = "Apple MacBook Pro 16-Inch 16GB RAM 1TB Storage",
                    .price = 2562.41
    };
 
    FILE *fp;
 
    fp = fopen("product_file.dat.dat", "wb");
    fwrite(&obj1, sizeof(obj1), 1, fp); 
    fwrite(&obj2, sizeof(obj2), 1, fp);
    fwrite(&obj3, sizeof(obj3), 1, fp);
    fclose(fp);
 
    fp = fopen("product_file.dat.dat", "rb");
     
    product obj;
    while(fread(&obj, sizeof(obj), 1, fp)) {
        printf("pcode : %ld\npnname : %s\nprice : %.2f\n\n", obj.pcode, obj.pname, obj.price);
    }
	fclose(fp);
 
    return 0;
}
 
 
/*
run:
 
pcode : 98742
pnname : Dell XPS 15 laptop 15.6 inch
price : 1964.43

pcode : 67398
pnname : Dell XPS 13 7390 Laptop 13.3 inch
price : 1499.99

pcode : 79913
pnname : Apple MacBook Pro 16-Inch 16GB RAM 1TB Storage
price : 2562.41
 
*/

 



answered Feb 13, 2020 by avibootz
edited Feb 14, 2020 by avibootz
0 votes
#include <stdio.h>
  
typedef struct product {
    long pcode;
    char pname[100];
    double price;
} product;

#define SIZE 3
  
int main()
{
	product obj[] = {
			{.pcode = 98742,
             .pname = "Dell XPS 15 laptop 15.6 inch",
             .price = 1964.43
			},
			{.pcode = 67398,
             .pname = "Dell XPS 13 7390 Laptop 13.3 inch",
             .price = 1499.99
			},
			{.pcode = 79913,
              .pname = "Apple MacBook Pro 16-Inch 16GB RAM 1TB Storage",
              .price = 2562.41
			}};
  
    FILE *fp;
  
    fp = fopen("product_file.dat.dat", "wb");
	for (int i = 0; i < SIZE; i++)
        fwrite(&obj[i], sizeof(product), 1, fp);
    fclose(fp);
  
    fp = fopen("product_file.dat.dat", "rb");
      
    product tmp;

    while(fread(&tmp, sizeof(tmp), 1, fp)) {
        printf("pcode : %ld\npnname : %s\nprice : %.2f\n\n", tmp.pcode, tmp.pname, tmp.price);
    }
    fclose(fp);
  
    return 0;
}
  
  
/*
run:
  
pcode : 98742
pnname : Dell XPS 15 laptop 15.6 inch
price : 1964.43

pcode : 67398
pnname : Dell XPS 13 7390 Laptop 13.3 inch
price : 1499.99

pcode : 79913
pnname : Apple MacBook Pro 16-Inch 16GB RAM 1TB Storage
price : 2562.41
  
*/

 



answered Feb 14, 2020 by avibootz

Related questions

1 answer 202 views
1 answer 214 views
1 answer 130 views
1 answer 136 views
2 answers 194 views
...