File I/O (Input/Output)

File I/O (Input/Output) in C. This allows you to read from and write to files, which is essential for many applications.

File I/O in C

Opening and Closing Files

To work with files, you first need to open them using the fopen function and close them with fclose.

Syntax for fopen:

FILE *fopen(const char *filename, const char *mode);
  • filename: Name of the file.

  • mode: File access mode (e.g., "r" for reading, "w" for writing).

Syntax for fclose:

int fclose(FILE *stream);
  • stream: Pointer to the FILE object.

Example: Opening and Closing Files

#include <stdio.h>

int main() {
    FILE *file = fopen("example.txt", "w");  // Open file for writing
    
    if (file == NULL) {
        printf("Error opening file\n");
        return 1;
    }
    
    // Write to the file
    fprintf(file, "Hello, World!\n");
    
    // Close the file
    fclose(file);
    
    return 0;
}

Reading from Files

To read data from a file, use functions like fscanf, fgets, and fread.

Syntax for fscanf:

  • stream: Pointer to the FILE object.

  • format: Format string similar to printf.

Syntax for fgets:

  • str: Buffer to store the string.

  • n: Maximum number of characters to read.

  • stream: Pointer to the FILE object.

Syntax for fread:

  • ptr: Pointer to the memory where data will be read.

  • size: Size of each item to read.

  • count: Number of items to read.

  • stream: Pointer to the FILE object.

Example: Reading from a File


Writing to Files

To write data to a file, use functions like fprintf, fputs, and fwrite.

Syntax for fprintf:

  • stream: Pointer to the FILE object.

  • format: Format string similar to printf.

Syntax for fputs:

  • str: String to write.

  • stream: Pointer to the FILE object.

Syntax for fwrite:

  • ptr: Pointer to the data to write.

  • size: Size of each item to write.

  • count: Number of items to write.

  • stream: Pointer to the FILE object.

Example: Writing to a File


Error Handling

Error handling is crucial for robust file operations. Use ferror and clearerr to check and clear errors.

Syntax for ferror:

  • stream: Pointer to the FILE object.

Syntax for clearerr:

  • stream: Pointer to the FILE object.

Example: Error Handling

Explanation:

  • perror: Prints a descriptive error message based on the current value of errno.

  • ferror: Checks if an error occurred on the file stream.

  • clearerr: Clears the error indicators for the file stream.


Summary

  • Opening and Closing Files: Use fopen and fclose.

  • Reading Files: Use fscanf, fgets, and fread.

  • Writing Files: Use fprintf, fputs, and fwrite.

  • Error Handling: Use ferror, clearerr, and perror to handle and report errors.

Last updated

Was this helpful?