Cライブラリ関数 -fgets()
説明
Cライブラリ関数char *fgets(char *str, int n, FILE *stream)指定されたストリーム stream から一行を読み取り、それをstr指し示された文字列内に格納します。読み取り文字数が(n-1)(n-1) 文字に達したとき、または改行文字を読み取ったとき、またはファイルの末尾に達したときに停止します。状況によって異なります。
宣言
以下は fgets() 関数の宣言です。
char *fgets(char *str, int n, FILE *stream)
引数
- str-- これは、読み取る文字列を格納する文字配列を指すポインタです。
- n-- これは読み取る最大文字数(最後のヌル文字を含む)です。通常は str で渡される配列の長さを使用します。
- stream-- これは FILE オブジェクトを指すポインタで、その FILE オブジェクトは文字を読み取るストリームを識別します。
戻り値
成功すると、この関数は同じ str 引数を返します。ファイルの末尾に達した場合、または文字を何も読み取らなかった場合、str の内容は変更されず、ヌルポインタを返します。
エラーが発生した場合は、ヌルポインタを返します。
例
以下の例は fgets() 関数の使い方を示しています。
例
#include <stdio.h>
int main()
{
FILE *fp;
char str[60];
/* 読み取り用にファイルを開く */
fp = fopen("file.txt" , "r");
if(fp == NULL) {
perror("ファイルを開くときにエラーが発生しました");
return(-1);
}
if( fgets (str, 60, fp)!=NULL ) {
/* 標準出力 stdout に内容を書き込む */
puts(str);
}
fclose(fp);
return(0);
}
int main()
{
FILE *fp;
char str[60];
/* 読み取り用にファイルを開く */
fp = fopen("file.txt" , "r");
if(fp == NULL) {
perror("ファイルを開くときにエラーが発生しました");
return(-1);
}
if( fgets (str, 60, fp)!=NULL ) {
/* 標準出力 stdout に内容を書き込む */
puts(str);
}
fclose(fp);
return(0);
}
テキストファイルがあるとしますfile.txt、その内容は次のとおりです。このファイルは例の入力として使用されます:
We are in 2014
上記のプログラムをコンパイルして実行すると、次の結果が得られます:
We are in 2014その他の拡張機能
C標準ライブラリ - <stdio.h>