1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | #include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <assert.h>
int main(int argc, char* argv[]) {
// file contains:
// * number of integers (4 bytes)
// * integers based on above count (4 bytes each)
// * number of booleans (4 bytes)
// * booleans based on above count (1 byte each)
FILE* file = fopen("integers_and_booleans.bin", "rb");
// read in numbers size
int numbers_count;
fread(&numbers_count, sizeof(numbers_count), 1, file);
printf("Numbers: %d\n", numbers_count);
// read in numbers
int* numbers = malloc(sizeof(*numbers) * numbers_count);
fread(numbers, sizeof(*numbers), numbers_count, file);
// read in booleans size
int booleans_count;
fread(&booleans_count, sizeof(booleans_count), 1, file);
printf("Booleans: %d\n", booleans_count);
// read in booleans
bool* booleans = malloc(sizeof(*booleans) * booleans_count);
fread(booleans, sizeof(*booleans), booleans_count, file);
// close after we are done reading
fclose(file);
for (int i = 0; i < numbers_count; i++) {
printf("0x%x\n", numbers[i]);
}
for (int i = 0; i < booleans_count; i++) {
printf("%s\n", booleans[i] ? "true" : "false");
}
free(numbers);
free(booleans);
return EXIT_SUCCESS;
}
/* vim: set tabstop=4 shiftwidth=4 fileencoding=utf-8 noexpandtab: */
|
© Copyright 2024 Alexander J. Quinn & David Burnett This content is protected and may not be shared, uploaded, or distributed.