file processing

ftell()

#include <stdio.h>
#include <conio.h>
void main () {
   FILE *fp;
   int length;
   clrscr();
   fp = fopen("file.txt", "r");
   fseek(fp, 0, SEEK_END);
   length = ftell(fp); // return current position
   fclose(fp);
   printf("File size: %d bytes", length);
   getch();
}
// output
// file size: 18 bytes

rewind()

#include <stdio.h>
#include <conio.h>
void main() {
  FILE *fp;
  char c;
  clrscr();
  fp = fopen("file.txt", "r");
  while( (c = fgetc(fp) ) != EOF) {
    printf("%c", c);
  }
  rewind(fp); // move the file pointer to the beginning of the file
  while( (c = fgetc(fp) ) != EOF) {
    printf("%c", c);
  }
  fclose(fp);
  getch();
}
// output
// Hello World! Hello World!

fseek()

#include <stdio.h>
void main(void) {
  FILE *fp;
  fp = fopen("myfile.txt","w+");
  fputs("This is Book", fp);
  // Set file pointer to the given position
  fseek(fp, 7, SEEK_SET);
  fputs("Kenny Wong", fp);
  fclose(fp);
}

set the file pointer to the given position

Read files: fgets()

#include<stdio.h>
#include<conio.h>
void main() {
  FILE *fp;
  char text[300];
  clrscr();
  fp = fopen("myfile2.txt", "r");
  printf("%s", fgets(text, 200, fp));
  fclose(fp);
  getch();
}

Write to file: fputs()

#include<stdio.h>
#include<conio.h>
void main() {
  FILE *fp;
  clrscr();
  fp = fopen("myfile2.txt","w");
  fputs("hello c programming",fp);
  fclose(fp);
  getch();
}

Read the file: fgetc()

#include <stdio.h>
#include <conio.h>
void main() {
  FILE *fp;
  char c;
  clrscr();
  fp = fopen("myfile.txt", "r");
  while( (c = fgetc(fp) ) != EOF) {
    printf("%c", c);
  }
  fclose(fp);
  getch();
}

Write to file: fputc()

#include <stdio.h>
void main() {
  FILE *fp;
  fp = fopen("file1.txt", "w"); // open the file
  fputc('a',fp); // write a single character to the file
  fclose(fp); // close the file
}

Read the file: fscanf()

#include <stdio.h>
void main() {
  FILE *fp;
  char buff[255]; // Create a char array to store file data
  fp = fopen("file.txt", "r");
  while(fscanf(fp, "%s", buff) != EOF) {
    printf("%s ", buff);
  }
  fclose(fp);
}

Write to file: fprintf()

#include <stdio.h>
void main() {
  FILE *fp;
  fp = fopen("file.txt", "w"); // open the file
  // write data to file
  fprintf(fp, "Hello file for fprintf..\n");
  fclose(fp); // close the file
}

Open the file: fopen()

#include <stdio.h>
void main() {
  FILE *fp;
  char ch;
  fp = fopen("file\_handle.c", "r");
  while (1) {
    ch = fgetc(fp);
    if (ch == EOF)
      break;
    printf("%c", ch);
  }
  fclose(fp);
}

After performing all operations on the file, the file must be closed with fclose()

Open mode parameter

Mode Mode Description Description
r Open a text file in read mode, allowing the file to be read
w Open a text file in write mode, allowing writing to the file
a Open a text file in append modeIf the file does not exist, a new one will be created
r+ Open a text file in read-write mode, allowing reading and writing of the file
w+ Open a text file in read-write mode, allowing reading and writing of the file
a+ Open a text file in read-write mode, allowing reading and writing of the file
rb Open a binary file in read mode
wb Open binary file in write mode
ab Open a binary file in append mode
rb+ open binary file in read-write mode
wb+ Open binary file in read-write mode
ab+ open binary file in read-write mode

File processing function

function description Description
fopen() open a new or existing file
fprintf() write data to file
fscanf() read data from a file
fputc() write a character to file
fgetc() read a character from a file
fclose() close the file
fseek() set the file pointer to the given position
fputw() Write an integer to a file
fgetw() read an integer from a file
ftell() returns the current position
rewind() set the file pointer to the beginning of the file
There are many functions in the C library to open/read/write/search and close files
Comments