7.6. getchar() and putchar()¶
- getchar
- putchar
In addition to scanf() and printf(), two additional input-output
functions that are useful in some situations are getchar() and
putchar().
Since char values are stored as an int,
getchar() returns an int.
Here is an example that can read the standard input and write all
capital letters to the standard output. The reason for calling
fflush(stdout); is to force any characters that are still on the
output buffer to display immediately.
#include <stdio.h>
int main(void)
{
int c;
while((c = getchar()) != EOF )
putchar(toupper(c));
fflush(stdout);
return 0;
}
7.7. fgetc() and fputc()¶
- fgetc
- fputc
fgetc() and fputc(), work the same as getchar() and
putchar() except they take an extra argument for an open file descriptor.
#include <stdio.h>
int main(void)
{
FILE *rfp, *wfp;
int c;
if ((rfp = fopen("fileToRead", "r")) == NULL) {
printf("Cannot open file to read");
return 1;
}
if ((wfp = fopen("fileToWrite", "w")) == NULL) {
printf("Cannot open file to write");
return 1;
}
while((c = fgetc(rfp)) != EOF)
fputc(c, wfp);
fclose(rfp);
fflush(wfp);
fclose(wfp);
}