/* 2202.c: Reading and writing binary data */
#include <stdio.h>
enum {SUCCESS, FAIL, MAX_NUM = 3};
void DataWrite(FILE *fout);
void DataRead(FILE *fin);
int ErrorMsg(char *str);
main(void)
{
FILE *fptr;
char filename[]= "double.bin";
int reval = SUCCESS;
if ((fptr = fopen(filename, "wb+")) == NULL){
reval = ErrorMsg(filename);
}
else {
DataWrite(fptr);
rewind(fptr); /* reset fptr */
DataRead(fptr);
fclose(fptr);
}
return reval;
}
/* function definition */
void DataWrite(FILE *fout)
{
int i;
double buff[MAX_NUM] = {123.45,567.89,100.11};
printf("The size of buff: %d-byte\n", sizeof(buff));
for (i=0; i<MAX_NUM; i++){
printf("%5.2f\n", buff[i]);
fwrite(&buff[i], sizeof(double), 1, fout);
}
}
/* function definition */
void DataRead(FILE *fin)
{
int i;
double x;
printf("\nRead back from the binary file:\n");
for (i=0; i<MAX_NUM; i++){
fread(&x, sizeof(double), (size_t)1, fin);
printf("%5.2f\n", x);
}
}
/* function definition */
int ErrorMsg(char *str)
{
printf("Cannot open %s.\n", str);
return FAIL;
}
#include <stdio.h>
enum {SUCCESS, FAIL, MAX_NUM = 3};
void DataWrite(FILE *fout);
void DataRead(FILE *fin);
int ErrorMsg(char *str);
main(void)
{
FILE *fptr;
char filename[]= "double.bin";
int reval = SUCCESS;
if ((fptr = fopen(filename, "wb+")) == NULL){
reval = ErrorMsg(filename);
}
else {
DataWrite(fptr);
rewind(fptr); /* reset fptr */
DataRead(fptr);
fclose(fptr);
}
return reval;
}
/* function definition */
void DataWrite(FILE *fout)
{
int i;
double buff[MAX_NUM] = {123.45,567.89,100.11};
printf("The size of buff: %d-byte\n", sizeof(buff));
for (i=0; i<MAX_NUM; i++){
printf("%5.2f\n", buff[i]);
fwrite(&buff[i], sizeof(double), 1, fout);
}
}
/* function definition */
void DataRead(FILE *fin)
{
int i;
double x;
printf("\nRead back from the binary file:\n");
for (i=0; i<MAX_NUM; i++){
fread(&x, sizeof(double), (size_t)1, fin);
printf("%5.2f\n", x);
}
}
/* function definition */
int ErrorMsg(char *str)
{
printf("Cannot open %s.\n", str);
return FAIL;
}