Quiero leer de una secuencia usando std::getline
dentro de un ciclo for.lectura segura de una secuencia en un ciclo for usando getline
La corriente que quiero decir es una clase heredada de std::basic_iostream
.
std::string line; for(;;){ try{ std::getline(myStreamObj, line); if(line != ""){ std::cout << line << std::endl; } } catch(std::ios_base::failure& ex){ std::cout << ex.what() << std::endl; } }
Quiero también para comprobar frente a otras condiciones de error como
eofbit failbit badbit
pero estoy algo confundido al respecto.
Si se cumplen algunas de las condiciones de configuración de estas 3 banderas, ¿se lanza alguna excepción como std::ios_base::failure
? ¿Cómo repartir estos 3 casos? ¿Debo hacer comprobaciones de otras maneras?
Gracias AFG
Gracias por su respuesta! No sabía acerca de esta condición, por lo que resulta útil. ¿Puedo preguntarte un pequeño detalle más? ¿Por qué las excepciones no son una buena opción aquí? –
@Abruzzo Muchas razones: más lento, no admite fácilmente la reanudación, necesita escribir más código para manejar los errores. Y la mayoría de las personas que leen su código esperarán que se usen excepciones * no * en esta área, por lo que encontrarán que el código es más difícil de entender. –