Tengo lo siguiente que abrirá un archivo para leer. Sin embargo, quiero verificar para asegurarse de que el archivo se haya abierto correctamente, por lo que estoy utilizando el error para ver si se han establecido los indicadores. Sin embargo, me siguen dando el siguiente error:Comprobando si un archivo se abrió correctamente con ifstream
Soy nuevo en C++, como yo vengo de C. Así que no estoy seguro de entender este error:
cannot call member function ‘bool std::basic_ios<_CharT, _Traits>::fail() const [with _CharT = char, _Traits = std::char_traits]’ without object
Código:
int devices::open_file(std::string _file_name)
{
ifstream input_stream;
input_stream.open(_file_name.c_str(), ios::in);
if(ios::fail() == true) {
return -1;
}
file_name = _file_name;
return 0;
}
Hola, gracias por la respuesta. HOwever, me pregunto por qué la bandera fallida nunca funcionó para mí. – ant2009
El uso de 'input_stream.fail()' debería tener el mismo efecto que '! Input_stream'. Como dije, no puedes usar 'ios :: fail()' porque es un método de instancia, no un método estático. – Sven
Por favor, ¿por qué usar la bandera 'ios :: in' con' ifstream'? – nn0p