Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <ctype.h>
- typedef struct
- {
- char nume_tara[20];
- char culoare_drapel[3][20]; // 3 culori pentru fiecare drapel
- }tara;
- int main()
- {
- int i, n, j;
- FILE *f;
- tara a;
- char caracter, culoare_cautata[20];
- if ((f = fopen("ScrieApoiCiteste.dat","wb")) == NULL )
- {
- puts("Eroare");
- exit(1);
- }
- puts("Cate informatii scrieti in fisier ?");
- scanf("%d",&n);
- fflush(stdin);
- for(i = 0; i < n; i++)
- {
- puts("\n Numele tarii = ");
- gets(a.nume_tara);
- puts(" Culorile drapelului ?");
- for(j = 0; j < 3; j++)
- gets(a.culoare_drapel[j]);
- fwrite(&a,sizeof(tara),1,f);
- }
- fclose(f);
- if ((f = fopen("ScrieApoiCiteste.dat","rb")) == NULL )
- {
- puts("Eroare");
- exit(1);
- }
- fseek(f,0L,SEEK_END);
- n = ftell(f)/sizeof(tara);
- fseek(f,0L,SEEK_SET);
- puts("Afisati toate tarile care au in drapel culoarea : ");
- gets(culoare_cautata);
- for(i = 0; i < n; i++)
- {
- fread(&a,sizeof(tara),1,f);
- for(j = 0; j < 3; j++)
- {
- if(!strcmp(a.culoare_drapel[j],culoare_cautata))
- {
- printf("\n Tara %3s contine culoarea %s pe drapel \n",a.nume_tara,culoare_cautata);
- break; // s-a gasit o aparitie a culorii in drapel, nu ne intereseaza o a doua, deci iesim fortat !
- }
- }
- }
- puts("\nAfisati toate tarile care au prima litera : ");
- scanf("%c",&caracter);
- fseek(f,0L,SEEK_SET);
- for(i = 0; i < n; i++)
- {
- fread(&a,sizeof(tara),1,f);
- if( (a.nume_tara[0] == toupper(caracter)) || (a.nume_tara[0] == tolower(caracter)))
- printf("\n Tara %3s incepe cu litera %c",a.nume_tara,caracter);
- }
- fclose(f);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement