#include
int main(){
FILE *fp;
//test purposes - populate the binary file
//task 2.a
if((fp = fopen("binaryfile1", "wb")) == NULL){
printf("Cannot open file. \n");
exit(1);
}
int num;
if(fwrite(&num, sizeof(int), 1, fp) != 1){
printf("Write error occured when writing nums. \n");
exit(1);
}
fclose(fp);
//exercises
//READ FILE
if((fp = fopen("binaryfile1", "rb")) == NULL){
printf("Cannot open file. \n");
exit(1);
}
int odd = 0;
int even =
//int arr[arr_count];
int *arr;
arr = (int*) malloc(sizeof(int));
int res;
int iter = 0;
while((res = fread(&num, sizeof(int), 1, fp)) != 0){
if(res != 1){
printf("Read error occured. \n");
exit(1);
}else{
arr = realloc(arr, (iter+1) * sizeof(int));
}
arr[iter] = num;
iter++;
if(num % 2 == 0) {
even++;
}else{
odd++;
}
}
}
//task 2.b
printf("Number of even numbers in binary file is %d\n", even);
printf("Number of odd numbers in binary file is %d\n", odd);
fclose(fp);
//task 2.v
FILE *txt;
if((txt = fopen("txtfile1", "w")) == NULL){
printf("Cannot open file. \n");
exit(1);
}
//sort array
for(int i = 0; i < iter - 1; i++){
for(int j = 0; j < iter - i - 1; j++){
if(arr[j] > arr[j+1]){
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
for(int i = 0; i < iter; i++){
fprintf(txt, "%d ", arr[i]);
}
free(arr);
fclose(txt);
return 0;
}