File Streams

Opening files

fopen
FILE *fopen(filename, "[rwa][+][b]")

r : Read text file
w : Write new text file
a : Append to new or existing text file
+ : Read-write mode
b : Binary file
  • Opens an IO stream for reading a file.
  • Returns NULL for error.
Examples
FILE *hFile = fopen("input.dat", "r+b");
if (hFile != NULL) {
...
}

Reading files

getc
int getc(FILE *fp)
  • Reads a character.
  • Returns EOF for end-of-file or error.
fgets
char *fgets(char *line, int maxline, FILE *fp)
  • Reads the entire current line, including the newline character.
  • Returns at most maxline-1 characters plus an end-of-string character ('{content}').
  • Returns NULL on end-of-file or error.
fscanf
int fscanf(FILE *fp, char *format, ...)

Writing files

putc
int putc(int ch, FILE *fp)
  • Writes a character.
  • Returns EOF for error.
fputs
int fputs(char *line, FILE *fp)
  • Writes a string.
  • Does not automatically add a newline character.
  • Returns EOF for error, and zero for success.
fprintf
int fprintf(FILE *fp, char *format, ...)

Closing files

fclose
int fclose(FILE *fp)