home *** CD-ROM | disk | FTP | other *** search
/ C Programming Starter Kit 2.0 / SamsPublishing-CProgrammingStarterKit-v2.0-Win31.iso / tyc / list16_4.c < prev    next >
C/C++ Source or Header  |  1993-10-16  |  1KB  |  58 lines

  1.  /* Direct file I/O with fwrite() and fread(). */
  2.  
  3.  #include <stdio.h>
  4.  
  5.  #define SIZE 20
  6.  
  7.  main()
  8.  {
  9.      int count, array1[SIZE], array2[SIZE];
  10.      FILE *fp;
  11.  
  12.      /* Initialize array1[]. */
  13.  
  14.      for (count = 0; count < SIZE; count++)
  15.          array1[count] = 2 * count;
  16.  
  17.      /* Open a binary mode file. */
  18.  
  19.      if ( (fp = fopen("direct.txt", "wb")) == NULL)
  20.      {
  21.          fprintf(stderr, "Error opening file.");
  22.          exit(1);
  23.      }
  24.      /* Save array1[] to the file. */
  25.  
  26.      if (fwrite(array1, sizeof(int), SIZE, fp) != SIZE)
  27.      {
  28.          fprintf(stderr, "Error writing to file.");
  29.          exit(1);
  30.      }
  31.  
  32.      fclose(fp);
  33.  
  34.      /* Now open the same file for reading in binary mode. */
  35.  
  36.      if ( (fp = fopen("direct.txt", "rb")) == NULL)
  37.      {
  38.          fprintf(stderr, "Error opening file.");
  39.          exit(1);
  40.      }
  41.  
  42.      /* Read the data into array2[]. */
  43.  
  44.      if (fread(array2, sizeof(int), SIZE, fp) != SIZE)
  45.      {
  46.          fprintf(stderr, "Error reading file.");
  47.          exit(1);
  48.      }
  49.  
  50.      fclose(fp);
  51.  
  52.      /* Now display both arrays to show they're the same. */
  53.  
  54.      for (count = 0; count < SIZE; count++)
  55.          printf("%d\t%d\n", array1[count], array2[count]);
  56.  
  57.  }
  58.