Cela ne fonctionne pas:
string temp;
cout << "Press Enter to Continue";
cin >> temp;
cout << "Press Enter to Continue";
cin.ignore();
ou mieux:
#include <limits>
cout << "Press Enter to Continue";
cin.ignore(std::numeric_limits<streamsize>::max(),'\n');
Essayer:
char temp;
cin.get(temp);
ou mieux encore:
char temp = 'x';
while (temp != '\n')
cin.get(temp);
Je pense que l'entrée de chaîne attendra jusqu'à ce que vous saisissiez de vrais caractères, pas seulement une nouvelle ligne.
Remplacez votre cin >> temp
avec:
temp = cin.get();
http://www.cplusplus.com/reference/iostream/istream/get/
cin >>
attendra EndOfFile. Par défaut, cin aura le drapeau skipws défini, ce qui signifie qu'il `` saute '' les espaces avant d'être extrait et mettre dans votre chaîne.
Vous devez inclure conio.h alors essayez ceci, c'est facile.
#include <iostream>
#include <conio.h>
int main() {
//some code like
cout << "Press Enter to Continue";
getch();
return 0;
}
Avec cela, vous n'avez pas besoin d'une chaîne ou d'un int pour cela juste getch();
La fonction std :: getline (déjà introduite avec C++ 98) fournit un moyen portable de l'implémenter:
#include <iostream>
#include <string>
void press_any_key()
{
std::cout << "Press Enter to Continue";
std::string temp;
std::getline(std::cin, temp);
}
J'ai trouvé cela grâce à ceci question et réponse après avoir observé que std::cin >> temp;
ne revient pas avec une entrée vide. Je me demandais donc comment gérer les entrées utilisateur facultatives (ce qui est logique car une variable de chaîne peut bien sûr être vide).