File Structures

2.4.2 Files with C Streams and C++ Stream Classes xFor FILE level access, the logical file is declared as a pointer to a FILE (FILE *) x The FILE structure is defined in the stdio.h header file. Opening

The C++ fopen function is used to open a file for FILE level access. x

  • The FILE fopen function must be supplied with (as arguments):
  • The name of the physical file
  • The access mode
  • xThe value returned by the fopen is a pointer to an open FILE, and is assigned to the file variable.

fopen function:

Prototypes:

FILE * fopen (const char* Filename, char * Access);

Example:

FILE * Input;

Input = fopen ("Daily.txt", "r");

The access mode should be one of the following strings:

  • r Open for reading (existing file only) in text mode
  • r+ Open for update (existing file only)
  • w Open (or create) for writing (and delete any previous data)
  • w+ Open (or create) for update (and delete any previous data)
  • aOpen (or create) for append with file pointer at current EOF (and keep any previous data) in text mode a+
  • Open (or create) for append update (and keep any previous data)

Closing

  • The C++ fclose function is used to close a file for FILE level access.
  • The FILE fclose function must be supplied with (as an argument):
  • A pointer to the FILE structure of the logical file
  • The value returned by the fclose is 0 if the close succeeds, and &neq;0 if the close fails..
  • Prototypes:

intfclose (FILE * Stream);

Example:

fclose (Input);

Reading

The C++ fread function is used to read data from a file for FILE level access.

  • The FILE fread function must be supplied with (as an arguments):
  • A pointer to the FILE structure of the logical file
  • The address of the buffer into which the data will be read
  • The number of items to be read
  • The size of each item to be read, in bytes
  • The value returned by the fread function is the number of items read.

Prototypes:

size_tfread (void * Buffer, size_t Size, size_t Count, FILE * Stream); Example:

fread (&C, 1, 1, Input);

Writing

The C++ fwrite function is used to write data to a file for FILE level access.

  • The FILE fwrite function must be supplied with (as an arguments):
  • A pointer to the FILE structure of the logical file oThe address of the buffer from which the data will be written o The number of items to be written o The size of each item to be written, in bytes
  • The value returned by the fwrite function is the number of items written.
  • Prototypes: size_tfwrite (void * Buffer, size_t Size, size_t Count, FILE * Stream); Example:
  • fwrite (&C, 1, 1, Output);

Department of ISE NIT,Raichur