Nie wiem jak zrobić instrukcję aby mając np. wektro [ 2 ,4 ,0] ułożył się w ten sposób [ 0, 2, 4]
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int cmpfunc (const void * a, const void * b)
{
return ( *(int*)a - *(int*)b );
}
int main(int argc, char *argv[]) {
FILE* wektory;
if((wektory = fopen("wektory.BIN","w+b"))==NULL)
puts("error");
srand(time(0));
typedef struct wektor{
float x,y,z;
} wektors;
int i;
wektors first[20];
for(i=0;i<20;++i){
first[i].x = 1 + rand() % 49;
first[i].y = 1 + rand() % 49;
first[i].z = 1 + rand() % 49;
}
for(i=0;i<20;++i)
fwrite(&first[i],sizeof(wektors), 1,wektory); //
fseek(wektory,0,0);
for(i=0;i<20;++i)
fread(&first[i],sizeof(wektors),1,wektory);
for(i=0;i<20;++i)
qsort(&first[i],1,sizeof(wektors),cmpfunc); // <<---- tu o tutaj
for(i=0;i<20;++i){
printf("%.2f\t",first[i].x);
printf("%.2f\t",first[i].y);
printf("%.2f\t",first[i].z);
puts("\n\n");
}
return 0;
}
może mi ktos wytlumaczyc dlaczego musze podac jako 3 argument liczbę 1 do funkcji fwrite ," liczba elementow ktora ma byc zapsiana do zrodla"
czyli nie rozumiem, i dlaczego jak dam 2 to rozmiar pliku zwieksza sie 2x, dlaczego wtedy nie nadpisuje się, tylko dopisuje gdzieś( no właśnie nie wiem gdzie, dlaej w pliku? )