fgets、fgetws

更新 : 2007 年 11 月

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

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

パラメータ

  • str
    データの格納場所。

  • n
    読み取る最大文字数。

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

戻り値

これらの各関数は、str を返します。エラーが発生するか、またはファイルの終端に達すると、NULL を返します。エラーが発生したかどうかを確認するには、feof または ferror を使用します。str または stream が null ポインタの場合、または n が 0 以下の場合、この関数は、「パラメータの検証」に説明されているように、無効なパラメータ ハンドラを呼び出します。実行の継続が許可された場合、errno が EINVAL に設定され、関数から NULL が返されます。

エラー コードの詳細については、「_doserrno、errno、_sys_errlist、および _sys_nerr」を参照してください。

解説

fgets 関数は、引数 stream として指定された入力ストリームから文字列を読み出し、str に格納します。fgets は、現在のストリーム位置から読み出しを開始し、最初の改行文字、ストリームの終端、または n – 1 文字目のいずれかを最初に検出するまで読み出します。str に格納された文字列の末尾には、NULL 文字が追加されます。改行文字は、読み取られると文字列として格納されます。

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

fgetws は、ワイド文字引数 str の読み出しを行い、stream がテキスト モードで開かれた場合はマルチバイト文字列として、バイナリ モードで開かれた場合はワイド文字列として読み出します。Unicode およびマルチバイトのストリーム入出力におけるテキスト モードおよびバイナリ モードの使い方の詳細については、「テキスト モードとバイナリ モードのファイル入出力」および「テキスト モードとバイナリ モードの Unicode ストリーム入出力」を参照してください。

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

TCHAR.H のルーチン

_UNICODE および _MBCS が未定義の場合

_MBCS が定義されている場合

_UNICODE が定義されている場合

_fgetts

fgets

fgets

fgetws

必要条件

関数

必須ヘッダー

fgets

<stdio.h>

fgetws

<stdio.h> または <wchar.h>

互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。

使用例

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

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

入力 : crt_fgets.txt

Line one.
Line two.

出力

Line one.

.NET Framework の相当するアイテム

参照

参照

ストリーム入出力

fputs、fputws

gets、_getws

puts、_putws