get a string of characters from a file
#include <stdio.h> char *fgets( char *buf, size_t n, FILE *fp );
The fgets() function gets a string of characters from the file designated by fp, and stores them in the array pointed to by buf. The fgets() function stops reading characters when:
whichever comes first. The newline character isn't discarded. A null character is placed immediately after the last character read into the array.
![]() |
A common programming error is to assume the presence of a newline character in every string that is read into the array. A newline character will not be present when more than n-1 characters occur before the newline. Also, a newline character might not appear as the last character in a file, just before end-of-file. |
The gets() function is similar to fgets(), except that it operates with stdin, it has no size argument, and it replaces a newline character with the null character.
![]() |
It's better to use fgets() than gets(). With gets(), data beyond the array buf is destroyed if a newline character isn't read from the input stream stdin before the end of the array buf is reached. |
The buf argument, or NULL if end-of-file is encountered, or a read error occurs. When an error has occurred, errno indicates the type of error detected.
#include <stdio.h>
void main()
{
FILE *fp;
char buffer[80];
fp = fopen( "file", "r" );
if( fp != NULL ) {
while( fgets( buffer, 80, fp ) != NULL )
fputs( buffer, stdout );
fclose( fp );
}
}
ANSI
| Safety: | |
|---|---|
| Interrupt handler | No |
| Signal handler | No |
| Thread | Yes |
errno, fgetc(), fgetchar(), fopen(), getc(), getchar(), gets(), ungetc()