namespace std {
int ferror(FILE* stream);
}
概要
ファイルストリームがエラー状態かを判定する。
戻り値
エラーが発生している場合は0以外を、そうでなければ0を返す。
備考
- エラー状態は、
clearerr()またはrewind()を呼び出すまで保持される - 入出力関数が失敗した場合、その原因がエラーとファイル終端のどちらであるかは、この関数と
feof()で判別する
例
#include <cstdio>
int main()
{
// 読み込み専用で開いたストリームへ書き込みを行う
std::FILE* fp = std::fopen("test.txt", "w");
std::fclose(fp);
fp = std::fopen("test.txt", "r");
std::fputc('A', fp);
std::printf("%d\n", std::ferror(fp) != 0);
std::fclose(fp);
}
出力
1