fgets、fgetwsfgets, fgetws

ストリームから文字列を取得します。Get a string from a stream.


char *fgets(
   char *str,
   int numChars,
   FILE *stream
wchar_t *fgetws(
   wchar_t *str,
   int numChars,
   FILE *stream


データの格納場所。Storage location for data.

読み取り対象の最大文字数。Maximum number of characters to read.

FILE 構造体へのポインター。Pointer to FILE structure.

戻り値Return Value

これらの関数はそれぞれstrを返します。Each of these functions returns str. NULLは、エラーまたはファイルの終端状態を示すために返されます。NULL is returned to indicate an error or an end-of-file condition. エラーが発生したかどうかを判断するには、 feofまたはferrorを使用します。Use feof or ferror to determine whether an error occurred. Strまたはstreamが null ポインターであるか、 numcharsが0以下の場合、この関数は、「パラメーターの検証」で説明されているように、無効なパラメーターハンドラーを呼び出します。If str or stream is a null pointer, or numChars is less than or equal to zero, this function invokes the invalid parameter handler, as described in Parameter Validation. 実行の継続が許可された場合、 errnoEINVALに設定され、関数はNULLを返します。If execution is allowed to continue, errno is set to EINVAL and the function returns NULL.

エラー コードの詳細については、「_doserrno、errno、_sys_errlist、_sys_nerr」をご覧ください。See _doserrno, errno, _sys_errlist, and _sys_nerr for more information on these, and other, error codes.


Fgets関数は、入力ストリーム引数から文字列を読み取り、 strに格納します。The fgets function reads a string from the input stream argument and stores it in str. fgetsは、現在のストリームの位置から、最初の改行文字、ストリームの末尾、または読み取られた文字数がnumchars -1 の範囲の文字を読み取ります。fgets reads characters from the current stream position to and including the first newline character, to the end of the stream, or until the number of characters read is equal to numChars - 1, whichever comes first. Strに格納された結果に null 文字が追加されます。The result stored in str is appended with a null character. 改行文字を読み取ると、文字列に含まれます。The newline character, if read, is included in the string.

fgetwsは、 fgetsのワイド文字バージョンです。fgetws is a wide-character version of fgets.

fgetwsは、ストリームがテキストモードとバイナリモードのどちらで開かれているかに応じて、ワイド文字の引数strをマルチバイト文字の文字列またはワイド文字列として読み取ります。fgetws reads the wide-character argument str as a multibyte-character string or a wide-character string according to whether stream is opened in text mode or binary mode, respectively. Unicode およびマルチバイトのストリーム入出力におけるテキスト モードおよびバイナリ モードの使い方の詳細については、「テキスト モードとバイナリ モードのファイル入出力」および「テキスト モードとバイナリ モードの Unicode ストリーム入出力」を参照してください。For more information about using text and binary modes in Unicode and multibyte stream-I/O, see Text and Binary Mode File I/O and Unicode Stream I/O in Text and Binary Modes.

汎用テキスト ルーチンのマップGeneric-Text Routine Mappings

TCHAR.H のルーチンTCHAR.H routine _UNICODE および _MBCS が未定義の場合_UNICODE & _MBCS not defined _MBCS が定義されている場合_MBCS defined _UNICODE が定義されている場合_UNICODE defined
_fgetts_fgetts fgetsfgets fgetsfgets fgetwsfgetws


関数Function 必須ヘッダーRequired header
fgetsfgets <stdio.h><stdio.h>
fgetwsfgetws <stdio.h> または <wchar.h><stdio.h> or <wchar.h>

互換性の詳細については、「 互換性」を参照してください。For additional compatibility information, see Compatibility.


// crt_fgets.c
// This program uses fgets to display
// the first line from a file.

#include <stdio.h>

int main( void )
   FILE *stream;
   char line[100];

   if( fopen_s( &stream, "crt_fgets.txt", "r" ) == 0 )
      if( fgets( line, 100, stream ) == NULL)
         printf( "fgets error\numChars" );
         printf( "%s", line);
      fclose( stream );

入力: crt_fgets.txtInput: crt_fgets.txt

Line one.
Line two.


Line one.

関連項目See also

ストリーム入出力Stream I/O
fputs、fputwsfputs, fputws
gets、_getwsgets, _getws
puts、_putwsputs, _putws