|
≫ |
|
|
|
HP OpenVMS HP C ランタイム・ライブラリ・リファレンス・マニュアル (下巻)
指定されたファイルから 1 行を読み込みます。指定された最大文字数,または改行文字まで ( どちらか最初に検出された方 ) を読み込みます。文字列は str に格納されます。
形式
#include <stdio.h>
char *fgets (char *str, int maxchar, FILE *file_ptr);
関数バリアント
fgets関数には,
_fgets32および
_fgets64という名前のバリアントがあり,それぞれ 32 ビット・ポインタ・サイズおよび 64 ビット・ポインタ・サイズで使用されます。ポインタ・サイズ固有の関数の使い方の詳細については,『HP C ランタイム・ライブラリ・リファレンス・マニュアル(上巻)』第 1.9 節を参照してください。
引数
strファイルから読み込まれた情報を格納できるだけの十分な大きさの文字列を指すポインタ。
maxchar読み込む最大文字数。
file_ptrファイル・ポインタ。
説明
fgets関数は,行をヌル文字 (\0) で区切ります。
gets関数と異なり,
fgets関数は,読み込んだ文字数が
maxchar に指定された文字数より少ない場合,入力行を区切るために改行文字をユーザ・バッファに追加します。
file_ptr によって示されるファイルがレコード・モードでオープンされている場合は,
fgetsはレコードの終端を改行文字と同じ方法で取り扱います。したがって,改行文字までを読み込むか,またはレコードの終端までを読み込みます。
戻り値
x
|
str を指すポインタ。
|
NULL
|
ファイルの終端 (EOF) またはエラーを示します。読み込みエラーが発生した場合は,
str の内容は未定義です。
|
例
#include <stdio.h>
#include <stdlib.h>
#include <unixio.h>
main()
{
FILE *fp;
char c_ptr[130];
/* Create a dummy data file */
if ((fp = fopen("file.dat", "w+")) == NULL) {
perror("open");
exit(1);
}
fprintf(fp, "this is a test\n") ;
fclose(fp) ;
/* Open a file with some data -"this is a test" */
if ((fp = fopen("file.dat", "r+")) == NULL) {
perror("open error") ;
exit(1);
}
fgets(c_ptr, 130, fp);
puts(c_ptr); /* Display what fgets got. */
fclose(fp);
delete("file.dat") ;
}
|
|