Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- struct Pet{
- char owner[30];
- char chip[7];
- float price;
- };
- struct Pet Add_Pet(){
- FILE* file;
- file = fopen("animalsText.txt", "w");
- if(file == NULL){
- fprintf(stderr, "FILE ERROR");
- exit(-1);
- }
- struct Pet p;
- scanf("%s", p.owner);
- scanf("%s", p.chip);
- scanf("%4f", &p.price);
- fprintf(file, "%s,%.2f\n", p.owner, p.price);
- fclose(file);
- return p;
- }
- void search_by_price(struct Pet* pets, int size, float price){
- int flag = 1;
- for(int i=0;i<size;i++){
- if(pets[i].price == price){
- printf("\n%s - %s\n", pets[i].owner, pets[i].chip);
- flag = 0;
- }
- }
- if(flag){
- printf("\nNo such price found!\n");
- }
- }
- void bin_search(float price){
- FILE* file;
- file = fopen("animalsBin.bin", "rb");
- int size;
- while(fread(&size, sizeof(int), 1, file)==1){
- char *name =(char*)calloc(size+1, sizeof(char));
- fread(name, sizeof(char), size, file);
- name[size] = '\0';
- char chip[8];
- fread(chip, sizeof(char), 7, file);
- chip[7] = '\0';
- float p;
- fread(&p, sizeof(float), 1, file);
- if(p >= price){
- printf("\nOwner: %s\n", name);
- printf("Chip: %s\n", chip);
- printf("Price: %.2f\n", p);
- }
- }
- fclose(file);
- }
- int main(){
- FILE* file;
- file = fopen("animalsBin.bin", "wb");
- if(file == NULL){
- fprintf(stderr, "FILE ERROR");
- exit(-1);
- }
- char name[5] = "denis";
- int size = 5;
- char chip[7] = "A12345B";
- float price = 40;
- fwrite(&size, sizeof(int), 1, file);
- fwrite(name, sizeof(char), 5, file);
- fwrite(chip, sizeof(char), 7, file);
- fwrite(&price, sizeof(float), 1, file);
- fclose(file);
- //
- struct Pet* pets =(struct Pet*)malloc(sizeof(struct Pet)*5);
- pets[0] = Add_Pet();
- search_by_price(pets, 5, 30);
- bin_search(30);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement