Creating the binary file:
#include <stdio.h>
int main(int argc, char const *argv[]) {
FILE *BIN;
BIN = fopen ("BIN.bin","wb");
if (BIN!=NULL)
{
for (int i = 1; i <= 100; i++) {
fwrite( & i,sizeof(i),1,BIN);
}
fclose (BIN);
}
return 0;
}
Reading the binary file:
#include <stdio.h>
int main(int argc, char const *argv[]) {
char* filename = "BIN.bin";
char x[100];
FILE *fp;
fp = fopen (filename,"rb");
fread(x,sizeof(x),1,fp);
for (size_t i = 0; i <sizeof(x); i++) {
printf("\n%u",x[i]);
}
fclose (fp);
return 0;
}
The problem is that the binary contains 3 zeros at each created number, where did I go wrong?
Output:
1
0
0
0
2
0
0
0
3
0
0
0
4
0
0
0
5
0
0
0
6
0
0
0
7
0
0
0
8
0
0
0
9
0
0
0
10
0
0
0
11
0
0
0
12
0
0
0
13
0
0
0
14
0
0
0
15
0
0
0
16
0
0
0
17
0
0
0
18
0
0
0
19
0
0
0
20
0
0
0
21
0
0
0
22
0
0
0
23
0
0
0
24
0
0
0
25
0
0
0