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