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

  1.  /* Demonstrates ftell() and rewind(). */
  2.  
  3.  #include <stdio.h>
  4.  
  5.  #define BUFLEN 6
  6.  
  7.  char msg[] = "abcdefghijklmnopqrstuvwxyz";
  8.  
  9.  main()
  10.  {
  11.      FILE *fp;
  12.      char buf[BUFLEN];
  13.  
  14.      if ( (fp = fopen("TEXT.TXT", "w")) == NULL)
  15.      {
  16.          fprintf(stderr, "Error opening file.");
  17.          exit(1);
  18.      }
  19.  
  20.      if (fputs(msg, fp) == EOF)
  21.      {
  22.          fprintf(stderr, "Error writing to file.");
  23.          exit(1);
  24.      }
  25.  
  26.      fclose(fp);
  27.  
  28.      /* Now open the file for reading. */
  29.  
  30.      if ( (fp = fopen("TEXT.TXT", "r")) == NULL)
  31.      {
  32.          fprintf(stderr, "Error opening file.");
  33.          exit(1);
  34.      }
  35.      printf("\nImmediately after opening, position = %ld", ftell(fp));
  36.  
  37.      /* Read in 5 characters. */
  38.  
  39.      fgets(buf, BUFLEN, fp);
  40.      printf("\nAfter reading in %s, position = %ld", buf, ftell(fp));
  41.  
  42.      /* Read in the next 5 characters. */
  43.  
  44.      fgets(buf, BUFLEN, fp);
  45.      printf("\n\nThe next 5 characters are %s, and position now = %ld",
  46.              buf, ftell(fp));
  47.  
  48.      /* Rewind the stream. */
  49.  
  50.      rewind(fp);
  51.  
  52.      printf("\n\nAfter rewinding, the position is back at %ld",
  53.              ftell(fp));
  54.  
  55.      /* Read in 5 characters. */
  56.  
  57.      fgets(buf, BUFLEN, fp);
  58.      printf("\nand reading starts at the beginning again: %s", buf);
  59.      fclose(fp);
  60.  }
  61.