std :: getline sur std :: cin

Y a-t-il une bonne raison pour laquelle:

std::ssortingng input; std::getline(std::cin, input); 

l’appel getline n’attendra-t-il pas l’entrée de l’utilisateur? Est-ce que l’état de la cin est en quelque sorte foiré?

Très probablement, vous essayez de lire une chaîne après avoir lu d’autres données, par exemple un int .

considérer l’entrée:

 11 is a prime 

si vous utilisez le code suivant:

 std::cin>>number; std::getline(std::cin,input) 

getline ne lira la nouvelle ligne qu’après 11 et vous aurez donc l’impression qu’il n’attend pas l’entrée de l’utilisateur.

Pour résoudre ce problème, utilisez une ligne de commande factice getline de consumr la nouvelle ligne après le numéro.

J’ai testé le code suivant et cela a fonctionné.

 #include  using namespace std; int main() { ssortingng input; getline(cin, input); cout << "You input is: " << input << endl; return 0; } 

Je suppose que dans votre programme, vous avez peut-être déjà quelque chose dans votre tampon d'entrée.