Buffered File I/O Summary
Specifier format: %w.pt (width, precision, data type)
Specifier types:
d, i integer in decimal format
o integer in octal format
x integer in hexadecimal format
u unsigned integer in decimal format
c integer in character format
s char *; prints all characters until the '\0'
f double [-]m.dddddd – by default 6 decimal places
e, E double [-]m.dddddde±xx or mddddddE±xx
g, G double; uses (e, E) if exponent is less than -4 or greater than or equal to precision; otherwise uses f format.
scanf also uses set [ ] or everything but the set with [^ ].
File Pointer creation: File *fp
File opening modes: r, w, a, rb, wb, ab (b = binary) (r = read; w = write; a = append)
Open command: fopen(filename,
opening mode); 
· returns a pointer to the file or NULL if cannot open
· Sample: FILE *ifp
if ((ifp =
fopen(ifilename, "r")) == NULL)             {
                                fprintf(stderr,
"Cannot open %s\n", ifilename); }
Close command: fclose(fp); 
Text File read / write commands:
| Screen
  commands | File
  commands | 
| putchar(c); | putc(fp, c); | 
| getchar(); | getc(fp); | 
| printf("…", …); | fprintf(fp, "…", …); | 
| scanf("…", …); | fscanf(fp, "…", …); | 
| gets(s); | fgets(fp, max size, s) | 
| puts(s); | fputs(fp, s); | 
Binary File read /
write commands: 
· fread: (pointer to read_buffer_var, object size, # objects, file pointer)
o Ex: fread(&person, sizeof(person), 1, ifp) >= 1
o Returns number read
· Fwrite: (pointer to write_buffer_var, object size, # objects, file pointer)
o fwrite(&person, sizeof(person), 1, ofp);
o returns number written