Advertisement
Guest User

Untitled

a guest
Jan 19th, 2017
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.03 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <ctype.h>
  5. typedef struct
  6. {
  7. char nume_tara[20];
  8. char culoare_drapel[3][20]; // 3 culori pentru fiecare drapel
  9. }tara;
  10.  
  11.  
  12. int main()
  13. {
  14. int i, n, j;
  15. FILE *f;
  16. tara a;
  17. char caracter, culoare_cautata[20];
  18.  
  19. if ((f = fopen("ScrieApoiCiteste.dat","wb")) == NULL )
  20. {
  21. puts("Eroare");
  22. exit(1);
  23. }
  24.  
  25. puts("Cate informatii scrieti in fisier ?");
  26. scanf("%d",&n);
  27. fflush(stdin);
  28.  
  29. for(i = 0; i < n; i++)
  30. {
  31. puts("\n Numele tarii = ");
  32. gets(a.nume_tara);
  33. puts(" Culorile drapelului ?");
  34. for(j = 0; j < 3; j++)
  35. gets(a.culoare_drapel[j]);
  36.  
  37. fwrite(&a,sizeof(tara),1,f);
  38. }
  39.  
  40. fclose(f);
  41.  
  42. if ((f = fopen("ScrieApoiCiteste.dat","rb")) == NULL )
  43. {
  44. puts("Eroare");
  45. exit(1);
  46. }
  47.  
  48. fseek(f,0L,SEEK_END);
  49. n = ftell(f)/sizeof(tara);
  50. fseek(f,0L,SEEK_SET);
  51.  
  52. puts("Afisati toate tarile care au in drapel culoarea : ");
  53. gets(culoare_cautata);
  54.  
  55.  
  56.  
  57. for(i = 0; i < n; i++)
  58. {
  59. fread(&a,sizeof(tara),1,f);
  60.  
  61. for(j = 0; j < 3; j++)
  62. {
  63. if(!strcmp(a.culoare_drapel[j],culoare_cautata))
  64. {
  65. printf("\n Tara %3s contine culoarea %s pe drapel \n",a.nume_tara,culoare_cautata);
  66. break; // s-a gasit o aparitie a culorii in drapel, nu ne intereseaza o a doua, deci iesim fortat !
  67. }
  68. }
  69. }
  70. puts("\nAfisati toate tarile care au prima litera : ");
  71.  
  72. scanf("%c",&caracter);
  73.  
  74.  
  75. fseek(f,0L,SEEK_SET);
  76.  
  77. for(i = 0; i < n; i++)
  78. {
  79. fread(&a,sizeof(tara),1,f);
  80.  
  81. if( (a.nume_tara[0] == toupper(caracter)) || (a.nume_tara[0] == tolower(caracter)))
  82. printf("\n Tara %3s incepe cu litera %c",a.nume_tara,caracter);
  83.  
  84. }
  85.  
  86. fclose(f);
  87. return 0;
  88. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement