fgets、fgetwsfgets, fgetws

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

構文Syntax

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

パラメーターParameters

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

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

streamstream
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またはストリーム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. 続けるには、実行が許可された場合errnoに設定されているEINVAL 、関数を返します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.

RemarksRemarks

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

必要条件Requirements

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

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

Example

// 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" );
      else
         printf( "%s", line);
      fclose( stream );
   }
}

入力: crt_fgets.txtInput: crt_fgets.txt

Line one.
Line two.

出力Output

Line one.

関連項目See also

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