Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::fgets

      From cppreference.com
      <cpp‎ |io‎ |c
       
       
       
       
      Defined in header<cstdio>
      char* fgets(char* str,int count,std::FILE* stream);

      Reads at mostcount-1 characters from the given file stream and stores them in the character array pointed to bystr. Parsing stops if a newline character is found, in which casestr 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 tostr.

      Contents

      [edit]Parameters

      str - pointer to an element of a char array
      count - maximum number of characters to write (typically the length ofstr)
      stream - file stream to read the data from

      [edit]Return value

      str on success, null pointer on failure.

      If the end-of-file condition is encountered, sets theeof indicator onstream (seestd::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 bystr 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 theerror indicator (seestd::ferror()) onstream. The contents of the array pointed to bystr are indeterminate (it may not even be null-terminated).

      [edit]Notes

      POSIX additionally requires thatfgets setserrno if it encounters a failure other than the end-of-file condition.

      Although the standard specification isunclear in the cases wherecount<=1, common implementations do

      • ifcount<1, do nothing, report error,
      • ifcount==1,
      • some implementations do nothing, report error,
      • others read nothing, store zero instr[0], report success.

      [edit]Example

      Run this code
      #include <cstdio>#include <cstdlib>#include <iomanip>#include <iostream>#include <span> void dump(std::span<constchar> buf,std::size_t offset){std::cout<<std::dec;for(char ch: buf)std::cout<<(ch>=' '? ch:'.'), offset--;std::cout<<std::string(offset,' ')<<std::hex<<std::setfill('0')<<std::uppercase;for(unsigned ch: buf)std::cout<<std::setw(2)<< ch<<' ';std::cout<<std::dec<<'\n';} 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);for(char buf[8]; std::fgets(buf, sizeof buf, tmpf)!= nullptr;)        dump(buf,10);}

      Output:

      Alan Tu.  41 6C 61 6E 20 54 75 00 ring..u.  72 69 6E 67 0A 00 75 00 John vo.  4A 6F 68 6E 20 76 6F 00 n Neuma.  6E 20 4E 65 75 6D 61 00 nn..uma.  6E 6E 0A 00 75 6D 61 00 Alonzo .  41 6C 6F 6E 7A 6F 20 00 Church..  43 68 75 72 63 68 0A 00

      [edit]See also

      reads formatted input fromstdin, a file stream or a buffer
      (function)[edit]
      (deprecated in C++11)(removed in C++14)
      reads a character string fromstdin
      (function)[edit]
      writes a character string to a file stream
      (function)[edit]
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/io/c/fgets&oldid=158721"

      [8]ページ先頭

      ©2009-2025 Movatter.jp