Advertisement
Patresss

Untitled

Jun 17th, 2014
695
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.14 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <time.h>
  5. #define size 10
  6. #define max 10
  7.  
  8.  
  9. struct struktura{
  10.     char znak[size+1];
  11. int var;
  12. };
  13.  
  14.  
  15. int main(void)
  16. {
  17.     struct struktura *wyraz;
  18.    // wyraz=(struct struktura*) malloc(sizeof(struct struktura)*size);
  19.    wyraz=(struct struktura*)malloc(size*sizeof(struct struktura));
  20.         int i,k;
  21.         int ile_liter;
  22.                 char* element;
  23.         char szukana_wartosc[max] = "fnf";
  24.  
  25. FILE *bsort;
  26. //srand(time(NULL));
  27.  
  28.  
  29. for(i=0;i<size;i++)
  30. {
  31. wyraz[i].var=i;
  32.  
  33. ile_liter=1+rand()%max;
  34.     for(k=0;k<ile_liter;k++)
  35.     {
  36.         wyraz[i].znak[k]=rand()%('z'-'a'+1)+'a';
  37.             wyraz[i].znak[k+1]='\0';
  38.     }
  39. }
  40.  
  41. for(i=0;i<size;i++)
  42. {
  43. printf("%d %s\n",wyraz[i].var, wyraz[i].znak);
  44. }
  45. qsort(wyraz,size,sizeof(struct struktura),(int(*)(const void*,const void*)) strcmp);
  46.  
  47.  
  48. puts("\nPo posortowaniu: \n");
  49. for(i=0;i<size;i++)
  50. {
  51. printf("%d %s\n",wyraz[i].var, wyraz[i].znak);
  52. }
  53.  
  54. //zapis//////////////////////////////////////////////////////////////////////////////////////////////
  55. bsort=fopen("dane.bin", "wb");
  56. if(bsort == NULL)
  57.         puts("Nie mozna zapisac");
  58. fwrite(wyraz,sizeof(struct struktura),size,bsort);
  59. fclose(bsort);
  60.  
  61.  
  62. //odczytanie pliku bin
  63.  
  64. puts("\n\nOdczyt z pliku binarnego");
  65.  
  66. bsort=fopen("dane.bin", "rb+");
  67. if(bsort == NULL)
  68.         puts("Nie mozna zapisac");
  69. fread(wyraz,sizeof(struct struktura),size,bsort);
  70.  
  71. for(i=0;i<size;i++)
  72. printf("%d %s\n",wyraz[i].var, wyraz[i].znak);
  73.  
  74. element = (char*) bsearch(szukana_wartosc, wyraz, size, sizeof(struct struktura), (int(*)(const void*,const void*)) strcmp);
  75.  
  76.         if ( element ){
  77.                 printf ("element '%s' znajduje sie w ciagu.\n", element);
  78.                 //fwrite(element,sizeof(char),1,bsort);
  79.                 }
  80.         else
  81.                 printf ("element '%s' nie zostal znaleziony w ciagu.\n", szukana_wartosc);
  82.  
  83.  
  84.  
  85. fclose(bsort);
  86.  
  87. ////////////////////////
  88. bsort=fopen("dane.bin", "ab");
  89. if(bsort == NULL)
  90.         puts("Nie mozna zapisac");
  91.  fprint ("element '%s' znajduje sie w ciagu.\n", element);
  92. fclose(bsort);
  93.  
  94.         return 0;
  95. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement