fgets、fgetws
ストリームから文字列を取得します。
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 がゼロ以下の場合、この関数は パラメーターの検証"に説明されているように、無効なパラメーター ハンドラーを呼び出します。 実行の継続が許可された場合、errno が EINVAL に設定され、関数から NULL が返されます。
エラー コードの詳細については、「_doserrno、errno、_sys_errlist、および _sys_nerr」を参照してください。
解説
fgets 関数は入力 stream 引数やストアから文字列を str内で読み込みます。 fgets は 現在のストリーム内の位置の文字を読み取り、ストリームの末尾に、または読み込まれた文字数までの最初の改行文字が含まれていると、最初にあるスレッドがいずれか、n – 1 と同じです。 str に格納される結果は null 文字が付けられます。 改行文字または文字列に、読み取られたとなります。
fgetws 関数は、fgets 関数のワイド文字バージョンです。
fgetws は マルチバイト文字またはワイド文字列として stream がテキスト モードまたはバイナリ モードで開くかによってワイド文字の引数 str をそれぞれ読み取ります。 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.