| Defined in header <cstdio> | ||
|---|---|---|
| char* fgets( char* str, int count, std::FILE* stream ); | 
Reads at most count - 1 characters from the given file stream and stores them in the character array pointed to by str. Parsing stops if a newline character is found, in which case str will contain that newline character, or if end-of-file occurs. If bytes are read and no errors occur, writes a null character at the position immediately after the last character written to str.
| str | - | pointer to an element of a char array | 
| count | - | maximum number of characters to write (typically the length of str) | 
| stream | - | file stream to read the data from | 
str on success, null pointer on failure.
If the end-of-file condition is encountered, sets the eof indicator on stream (see std::feof()). This is only a failure if it causes no bytes to be read, in which case a null pointer is returned and the contents of the array pointed to by str are not altered (i.e. the first byte is not overwritten with a null character).
If the failure has been caused by some other error, sets the error indicator (see std::ferror()) on stream. The contents of the array pointed to by str are indeterminate (it may not even be null-terminated).
POSIX additionally requires that fgets sets errno if it encounters a failure other than the end-of-file condition.
Although the standard specification is unclear in the cases where count<=1, common implementations do.
count < 1, do nothing, report error count == 1, str[0], report success #include <iostream>
#include <cstdio>
#include <cstdlib>
 
int main()
{
    std::FILE* tmpf = std::tmpfile();
    std::fputs("Alan Turing\n", tmpf);
    std::fputs("John von Neumann\n", tmpf);
    std::fputs("Alonzo Church\n", tmpf);
 
    std::rewind(tmpf);
    char buf[8];
    while (std::fgets(buf, sizeof buf, tmpf) != nullptr) {
        std::cout << '"' << buf << '"' << '\n';
    }
}Output:
"Alan Tu" "ring " "John vo" "n Neuma" "nn " "Alonzo " "Church "
| reads formatted input from stdin, a file stream or a buffer(function) | |
| (deprecated in C++11)(removed in C++14) | reads a character string from stdin(function) | 
| writes a character string to a file stream (function) | |
| C documentation for fgets | |
    © cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
    https://en.cppreference.com/w/cpp/io/c/fgets