fgets

[機能]

  ストリームから文字列を読み込みます.文字の読込は,改行文字('\n')が現れるか,ファイルの終端に達するか,または,読み込んだ文字数が (指定された文字数 - 1) になるまで行われます.改行文字は読み込み格納されます.文字列の最後には NULL 文字( '\0' )が付加されます.fgets 関数のストリームを標準入力ストリーム( stdin )とすれば,gets 関数とほとんど同じですが,gets 関数では,改行文字を NULL 文字に置き換えます.成功すると読み込んだ文字列に対するポインタを返し,エラーが発生するかまたはファイルの終端に達すると NULL を返します.

[形式]
#include <stdio.h>

char *fgets(char *string, int n, FILE *stream)
	string : 読み込んだデータの格納場所
	n      : 読み込む文字数
	stream : FILE 構造体へのポインタ		
[使用例]

  1. fgetc 関数と fgets 関数の比較
    #include <stdio.h>
    
    int main()
    {
    	int i1;
    	char str[81];
    	FILE *stream;
    	fpos_t pos;
    /*
    		 テストデータをファイルへ出力
    */
    	stream = fopen("data", "w");
    
    	fputs("This is a test", stream);
    
    	fclose(stream);
    /*
    		 ファイルのオープン
    */
    	stream = fopen("data", "r");
    
    	fgetpos(stream, &pos);                /* ファイル位置の取得 */
    /*
    		 fgets関数による入力
    */
    	fgets(str, 50, stream);
    	printf("%s\n", str);
    /*
    		 fgetc関数による入力
    */
    	i1 = 0;
    	fsetpos(stream, &pos);                /* ファイル位置を戻す */
    
    	while ((str[i1] = (char)fgetc(stream)) != EOF)
    		i1++;
    
    	str[i1] = '\0';
    
    	printf("%s\n", str);
    
    	return 0;
    }
    			
    (出力)
    This is a test
    This is a test			
[参照]

getc, getchar, gets, putc, putchar, puts, fgetc, fputc, fputs, getw, putw

菅沼ホーム 本文目次 演習問題解答例 付録目次 索引