Ho notato che ogni volta che scrivo un programma che usa std::cin
che se voglio che l'utente prema Invio per terminare il programma, devo scrivere due volte lo std::cin.ignore()
per ottenere il comportamento desiderato. Per esempio:Perché è necessario un secondo cin.ignore()?
#include <iostream>
int main(void)
{
int val = 0;
std::cout << "Enter an integer: ";
std::cin >> val;
std::cout << "Please press Enter to continue..." << std::endl;
std::cin.ignore();
std::cin.ignore(); // Why is this one needed?
}
Ho anche notato che quando non sto usando cin
per l'ingresso vero e proprio, ma piuttosto solo per la ignore()
chiamata alla fine, ho solo bisogno di uno.
Stai usando Linux o Windows, può essere causa di il problema CRLF se si sta usando Windows ... – Ben
Lo stesso "problema" si verifica su Solaris. Non ha nulla a che fare con CRLF. –