std :: cin :: y por qué queda una nueva línea
Referencia¿Por qué se cierra la consola después de haber incluido cin.get ()?
Estaba utilizandostd::cin.get()
#include<iostream>
char decision = ' ';
bool wrong = true;
while (wrong) {
std::cout << "\n(I)nteractive or (B)atch Session?: ";
if(std::cin) {
decision = std::cin.get();
if(std::cin.eof())
throw CustomException("Error occurred while reading input\n");
} else {
throw CustomException("Error occurred while reading input\n");
}
decision = std::tolower(decision);
if (decision != 'i' && decision != 'b')
std::cout << "\nPlease enter an 'I' or 'B'\n";
else
wrong = false;
}
Yo leobasic_istream :: centinela ystd :: cin :: get.
Elegí en lugar de usarstd::getline
ya que el bucle while se está ejecutando dos veces porque el flujo no está vacío.
std::string line; std::getline(std::cin, line);
Como la referencia que publiqué más arriba se encuentra dentro de una de las respuestas,std::cin
Se utiliza para leer un personaje ystd::cin::get
Se utiliza para eliminar la nueva línea.\n
.
char x; std::cin >> x; std::cin.get();
Mi pregunta es ¿por quéstd::cin
deja una nueva linea\n
en la corriente?