rendered paste body#include <stdio.h>#include <stdlib.h>#include <string.h>#define SIZE 200#define SIZEMARCA 200#define SIZEVECT 6000#define TRUE 1#define FALSE 0typedef struct carros{ char marca[SIZE]; char modelo[SIZE]; char versao[SIZE]; int portas; char combustivel[SIZE]; int preco;}BaseDados;typedef BaseDados* DADOS;char *fileread(char *vect, char *base, char *first, char seg[]){ char *now; int i; now=strstr(first,seg); i=(int)(now-(first+2)); puts("coisas!!"); strncpy(base,vect,i); puts("5"); puts(base); return(now);}int fileopen(char *filename, DADOS base){ puts("-1"); FILE *fp; char vect[SIZE]; char seg[3]=" "; char cast[SIZE]; char *first; char seg2[4]=",00"; int i=0; puts("0"); fp=fopen(filename, "r"); while(TRUE){ puts("1"); fgets(vect,5000,fp); puts("2"); first=strstr(vect, seg); puts("3"); first=fileread(vect,(base[i]).marca, first, seg); puts("4"); first=fileread(vect,(base[i]).modelo, first, seg); first=fileread(vect,(base[i]).versao, first, seg); first=fileread(vect,cast, first, seg); (base[i]).portas=atoi(cast); first=fileread(vect,(base[i]).combustivel, first, seg); first=fileread(vect,cast, first, seg2); (base[i]).preco=atoi(cast); if(first==(char*)EOF){ printf("End of file apos %d entradas na base de dados", i); return(i); } i++; }}void printmarcas(DADOS dados, int size){ int i; size+1; for(i=0;i<size;i++){ printf("%s", (dados[i]).marca); }}void price(DADOS dados, int size){ char temp[SIZE], temp2[SIZE]; int i,comp, k, y, compara,track=0; puts("Qual a marca do carro?"); scanf("%s", temp); for(i=0; i<=size; i++){ comp=strcmp(dados[i].marca, temp); if(comp==0){ puts("Qual o modelo do carro?"); scanf("%s", temp2); for(k=0; k<=size; k++){ comp=strcmp(dados[k].marca, temp); if(comp==0){ comp=strcmp(dados[k].modelo,temp2); if(comp==0){ printf("%d,00 €", dados[k].preco); } } } } } }void main(int num, char *entrada[]){ puts("+1"); char filename[SIZE]; BaseDados dados[SIZE]; int escolha; int size=0; int i; puts("-2"); if(num==2){ puts("-3"); size=fileopen(entrada[1], dados); puts("Ficheiro lido"); } do{ printf("Viaturas? É comigo!\n\n"); printf("0 - Sair do programa\n"); printf("1 - Ler o ficheiro de texto\n"); printf("2 - Mostrar todas as marcas\n"); printf("3 - Mostrar o preço de uma viatura\n"); printf("4 - Escrever dados num ficheiro de texto\n"); printf("Escolha uma opcao: "); scanf(" %d", &escolha); switch(escolha){ case 0: exit(0); case 1:printf("Indique o nome do ficheiro a ler: "); scanf("%s", filename); /*if(size!=0){ while(i<=size){ free(dados[i]); } }*/ size=fileopen(filename, dados); printf("Foram lidas %d entradas", size); break; case 2:printmarcas(dados, size); break; case 3:price(dados, size); break; } }while(1);}