名前空間
変種
操作

std::fgets

提供: cppreference.com
< cpp‎ | io‎ | c
 
 
入出力ライブラリ
入出力マニピュレータ
Cスタイルの入出力
バッファ
(C++98で非推奨)
ストリーム
抽象
ファイル入出力
文字列入出力
配列入出力
(C++98で非推奨)
(C++98で非推奨)
(C++98で非推奨)
同期化出力
エラーカテゴリインタフェース
(C++11)
 
 
ヘッダ <cstdio> で定義
char* fgets( char* str, int count, std::FILE* stream );

指定されたファイルストリームから最大 count - 1 文字を読み込み、 str の指す文字配列にそれらを格納します。 ファイル終端に達したか改行が見つかった場合は読み込みを停止します。 改行が見つかった場合はその改行文字が str に格納されます。 エラーが発生しなければ、 str の最後の文字の直後の位置にヌル文字が書き込まれます。

目次

[編集] 引数

str - 文字配列の要素を指すポインタ
count - 書き込む最大文字数 (一般的には str の長さ)
stream - データを読み込むファイルストリーム

[編集] 戻り値

成功した場合は str、失敗した場合はヌルポインタ。

失敗がファイル終端に達したことに起因する場合は、さらに streamファイル終端指示子 (std::feof() を参照) をセットします。 この場合、 str の指す配列の内容は変更されません。

失敗が何らかの他のエラーに起因する場合は、 streamエラー指示子 (std::ferror() を参照) をセットします。 str の指す配列の内容は不定になります (ヌル終端されない可能性もあります)。

[編集]

#include <iostream>
#include <cstdio>
#include <cstdlib>
 
int main()
{
    std::FILE* tmpf = std::tmpfile();
    std::fputs("Alan Turing\n", tmpf);
    std::fputs("John von Neumann\n", tmpf);
    std::fputs("Alonzo Church\n", tmpf);
 
    std::rewind(tmpf);
    char buf[8];
    while (std::fgets(buf, sizeof buf, tmpf) != NULL) {
        std::cout << '"' << buf << '"' << '\n';
    }
}

出力:

"Alan Tu"
"ring
"
"John vo"
"n Neuma"
"nn
"
"Alonzo "
"Church
"

[編集] 関連項目

stdin、ファイルストリームまたはバッファから書式付き入力を行います
(関数) [edit]
(C++11で非推奨)(C++14で削除)
stdin から文字列を読み込みます
(関数) [edit]
ファイルストリームに文字列を書き込みます
(関数) [edit]