Ifstream - 重置EOF位

时间:2012-03-11 14:16:27

标签: c++ ifstream eof

我正在使用ifstream。我读到EOF位置位(我需要这样)。

为什么然后不这样做:

// IN is ifstream file. CH is char.

if (IN.eof()) {
    IN.seekg(ios::beg);
    IN.clear();

    if (read((char*)&CH, sizeof(CH)))
        cout << "Succes.";
    else
        cout << "Not S.";    
}

read功能随时都不成功。我也尝试使用IN.setstate(ifstream::goodbit)代替IN.clear()。但它是一样的,我是对的吗?

1 个答案:

答案 0 :(得分:7)

更改您的代码:

IN.clear();
IN.seekg(0, ios::beg);