Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <time.h>
- #define size 10
- #define max 10
- struct struktura{
- char znak[size+1];
- int var;
- };
- int main(void)
- {
- struct struktura *wyraz;
- // wyraz=(struct struktura*) malloc(sizeof(struct struktura)*size);
- wyraz=(struct struktura*)malloc(size*sizeof(struct struktura));
- int i,k;
- int ile_liter;
- char* element;
- char szukana_wartosc[max] = "fnf";
- FILE *bsort;
- //srand(time(NULL));
- for(i=0;i<size;i++)
- {
- wyraz[i].var=i;
- ile_liter=1+rand()%max;
- for(k=0;k<ile_liter;k++)
- {
- wyraz[i].znak[k]=rand()%('z'-'a'+1)+'a';
- wyraz[i].znak[k+1]='\0';
- }
- }
- for(i=0;i<size;i++)
- {
- printf("%d %s\n",wyraz[i].var, wyraz[i].znak);
- }
- qsort(wyraz,size,sizeof(struct struktura),(int(*)(const void*,const void*)) strcmp);
- puts("\nPo posortowaniu: \n");
- for(i=0;i<size;i++)
- {
- printf("%d %s\n",wyraz[i].var, wyraz[i].znak);
- }
- //zapis//////////////////////////////////////////////////////////////////////////////////////////////
- /*Zapis do pliku binarnego */
- puts("\nZapisuje do pliku");
- bsort=fopen("dane.bin","wb");
- if(bsort == NULL)
- puts("Nie mozna zapisac");
- fwrite(wyraz,sizeof(struct struktura),size,bsort);
- fclose(bsort);
- /////////////////////////
- puts("\n\nOdczyt z pliku binarnego");
- bsort=fopen("dane.bin", "rb");
- if(bsort == NULL)
- puts("Nie moge zapisac");
- fread(wyraz,sizeof(struct struktura),size,bsort);
- for(i=0;i<size;i++)
- printf("%d %s\n", wyraz[i].var, wyraz[i].znak);
- element = (char*) bsearch(szukana_wartosc, wyraz, size, sizeof(struct struktura), (int(*)(const void*,const void*)) strcmp);
- if ( element ){
- printf ("element '%s' znajduje sie w ciagu.\n", element);
- // fprintf("%s",element);
- }
- else
- printf ("element '%s' nie zostal znaleziony w ciagu.\n", szukana_wartosc);
- fclose(bsort);
- //dodaje element//////////////////
- bsort=fopen("dane.bin","ab+");
- if(bsort == NULL)
- puts("Nie mozna zapisac");
- element = (char*) bsearch(szukana_wartosc, wyraz, size, sizeof(struct struktura), (int(*)(const void*,const void*)) strcmp);
- if ( element ){
- // printf ("element '%s' znajduje sie w ciagu.\n", element);
- fprintf(bsort,"%s",element);
- }
- else
- printf ("element '%s' nie zostal znaleziony w ciagu.\n", szukana_wartosc);
- fclose(bsort);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement