![]() Chapter Contents |
![]() Previous |
![]() Next |
| getc |
| Portability: | ISO/ANSI C conforming, UNIX compatible |
| SYNOPSIS | |
| DESCRIPTION | |
| RETURN VALUE | |
| IMPLEMENTATION | |
| EXAMPLE | |
| RELATED FUNCTIONS | |
| SEE ALSO |
| SYNOPSIS |
#include <stdio.h> int getc(FILE *f);
| DESCRIPTION |
getc
reads a single character from the stream associated with the
FILE
object addressed by
f
.
| RETURN VALUE |
getc
returns the next input character or
EOF
if no character is read. A return value of
EOF
indicates that the end of file has been reached or that an error has
occurred. The
ferror
function can be called
to distinguish these cases.
| IMPLEMENTATION |
getc
is implemented as a built-in function. A subroutine call is executed only
if no characters remain in the current input buffer.
The code generated for
getc
normally includes tests for a 0
FILE
pointer and for a stream that failed to open. If you define
the symbol
_FASTIO
using
#define
or the
define
compiler option before
including
<stdio.h>
, no code is generated
for these checks. This enables you to improve the performance of debugged
programs that use
getc
.
| EXAMPLE |
#include <ctype.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#define _FASTIO /* Improve getc/putc performance. */
main()
{
int ch;
FILE *in, *out;
char filename[60];
puts("Enter the name of your input file:");
memcpy(filename, "cms:", 4);
gets(filename+4);
in = fopen(filename, "r");
if (!in){
puts("Failed to open input file.");
exit(EXIT_FAILURE);
}
puts("Enter the name of your output file:");
memcpy(filename, "cms:", 4);
gets(filename+4);
out = fopen(filename, "w");
if (!out){
puts("Failed to open output file.");
exit(EXIT_FAILURE);
}
for(;;){
ch = getc(in);
if (ch == EOF) break;
if (islower(ch)) putc(toupper(ch), out);
else putc(tolower(ch), out);
if (ferror(out)) break;
}
if (ferror(in) || ferror(out)) /* Check for error. */
exit(EXIT_FAILURE);
exit(EXIT_SUCCESS);
}
| RELATED FUNCTIONS |
| SEE ALSO |
![]() Chapter Contents |
![]() Previous |
![]() Next |
![]() Top of Page |
Copyright © 2001 by SAS Institute Inc., Cary, NC, USA. All rights reserved.