std::basic_ios<CharT,Traits>:: good
|
bool
good
(
)
const
;
|
||
Devuelve true si la operación de E/S más reciente en el flujo se completó exitosamente. Específicamente, devuelve el resultado de rdstate ( ) == 0 .
Consulte ios_base::iostate para obtener la lista de condiciones que establecen los bits de estado del flujo.
Contenidos |
Parámetros
(ninguno)
Valor de retorno
true si todos los indicadores de error del flujo son falsos, false en caso contrario.
Ejemplo
#include <cstdlib> #include <fstream> #include <iostream> int main() { const char* fname = "/tmp/test.txt"; std::ofstream ofile{fname}; ofile << "10 " << "11 " << "12 " << "non-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; } // el bucle típico de E/S de C++ utiliza el valor de retorno de la función de E/S // como condición de control del bucle, aquí se utiliza 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. Fin de archivo alcanzado exitosamente - eofbit es verdadero\n" "Esto está bien aunque file.good() sea falso\n"; else if (file.fail()) std::cout << "#4. Se encontraron datos no enteros - failbit es verdadero\n"; }
Salida posible:
10 11 12 #4. Se encontraron datos no enteros - failbit es verdadero
Véase también
La siguiente tabla muestra el valor de basic_ios accessors ( good() , fail() , etc.) para todas las combinaciones posibles de ios_base::iostate flags:
| ios_base::iostate indicadores |
basic_ios
accesores
|
|||||||
eofbit
|
failbit
|
badbit
|
good() | fail() | bad() | eof() | operator bool | operator! |
| falso | falso | falso | verdadero | falso | falso | falso | verdadero | falso |
| falso | falso | verdadero | falso | verdadero | verdadero | falso | falso | verdadero |
| falso | verdadero | falso | falso | verdadero | falso | falso | falso | verdadero |
| falso | verdadero | verdadero | falso | verdadero | verdadero | falso | falso | verdadero |
| verdadero | falso | falso | falso | falso | falso | verdadero | verdadero | falso |
| true | false | true | false | true | true | true | false | true |
| verdadero | verdadero | falso | falso | verdadero | falso | verdadero | falso | verdadero |
| verdadero | verdadero | verdadero | falso | verdadero | verdadero | verdadero | falso | verdadero |