次の方法で共有


fgets, fgetws

ストリームから文字列を取得します。

構文

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

パラメーター

str
データの格納場所。

numChars
読み取り対象の最大文字数。

stream
FILE 構造体へのポインター。

戻り値

これらの各関数は、str を返します。 エラーまたはファイルの末尾条件を示す NULL が返されます。 feof または ferror を使用して、エラーが発生したかどうかを確認します。 strまたはstreamが null ポインターであるか、numCharsが 0 以下の場合、この関数は、Parameter 検証で説明されているように、無効なパラメーター ハンドラーを呼び出します。 実行の継続が許可された場合、 errnoEINVAL に設定され、関数が NULLのセキュリティが強化されたバージョンです。

リターン コードの詳細については、「errno_doserrno_sys_errlist、および _sys_nerr」を参照してください。

解説

fgets 関数は、入力 stream 引数から文字列を読み取り、str に格納します。 fgets では、現在のストリーム位置 (最初の改行文字を含む) から、ストリームの末尾に達するか、読み取り文字数が numChars - 1 になるかのどちらかが先に発生した時点まで文字を読み取ります。 str に格納される結果には、null 文字が付加されます。 改行文字を読み取ると、文字列に含まれます。

fgetws 関数は、fgets 関数のワイド文字バージョンです。

fgetwsは、テキスト モードまたはバイナリ モードでstreamを開いたときに、マルチバイト文字列またはワイド文字文字列としてstrワイド文字引数を読み取ります。 Unicode およびマルチバイト ストリーム I/O でテキスト モードとバイナリ モードを使用する方法の詳細については、「 テキスト モードとバイナリ モード のファイル I/O およびテキスト モードとバイナリ モードでのUnicode ストリーム I/O 」を参照してください

既定では、この関数のグローバル状態の適用対象は、アプリケーションになります。 この動作を変更するには、「CRT でのグローバル状態」を参照してください。

汎用テキスト ルーチンのマップ

TCHAR.H ルーチン _UNICODE_MBCS が定義されていない _MBCS が定義されている _UNICODE が定義されている
_fgetts fgets fgets fgetws

要件

機能 必須ヘッダー
fgets <stdio.h>
fgetws <stdio.h> または <wchar.h>

互換性の詳細については、「 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" );
      else
         printf( "%s", line);
      fclose( stream );
   }
}

入力: crt_fgets.txt

Line one.
Line two.

出力

Line one.

関連項目

ストリーム入出力
fputs, fputws
gets, _getws
puts, _putws