std::basic_ios<CharT,Traits>::good
De cppreference.com
<tbody>
</tbody>
bool good() const; |
||
Devuelve true si la operación de E/S más reciente en el flujo se completó correctamente. Específicamente, devuelve el resultado de rdstate() == 0.
Véase ios_base::iostate para obtener la lista de condiciones que establecen los bits de estado del flujo.
Parámetros
(Ninguno)
Valor de retorno
true si los indicadores de error del flujo son todos falsos, false en caso contrario.
Ejemplo
Ejecuta este código
#include <cstdlib>
#include <fstream>
#include <iostream>
int main()
{
const char* fname = "/tmp/test.txt";
std::ofstream ofile{fname};
ofile << "10 " << "11 " << "12 " << "no-int";
ofile.close();
std::ifstream file{fname};
if (!file.good())
{
std::cout << "#1. Error al abrir el archivo test.txt - "
"Uno de los indicadores de error es verdadero\n";
return EXIT_FAILURE;
}
// Un bucle de E/S típico de C++ utiliza el valor de retorno de la función
// de E/S como la condición de control del bucle, aquí se usa operator bool()
for (int n; file >> n;)
std::cout << n << ' ';
std::cout << '\n';
if (file.bad())
{
std::cout << "#2. Error de E/S durante la lectura - badbit es verdadero\n";
return EXIT_FAILURE;
}
else if (file.eof())
std::cout << "#3. Se alcanzó el fin de archivo con éxito - eofbit es verdadero\n"
"Esto está bien incluso aunque file.good() sea falso\n";
else if (file.fail())
std::cout << "#4. Se encontraron datos no enteros - failbit es verdadero\n";
}
Posible salida:
10 11 12
#4. Se encontraron datos no enteros - failbit es verdadero
Véase también
| ios_base::iostate flags | basic_ios accessors | |||||||
| eofbit | failbit | badbit | good() | fail() | bad() | eof() | operator bool() | operator!() |
| false | false | false | true | false | false | false | true | false |
| false | false | true | false | true | true | false | false | true |
| false | true | false | false | true | false | false | false | true |
| false | true | true | false | true | true | false | false | true |
| true | false | false | false | false | false | true | true | false |
| true | false | true | false | true | true | true | false | true |
| true | true | false | false | true | false | true | false | true |
| true | true | true | false | true | true | true | false | true |