Das funktioniert nicht:drücken, um fortzufahren
string temp;
cout << "Press Enter to Continue";
cin >> temp;
Das funktioniert nicht:drücken, um fortzufahren
string temp;
cout << "Press Enter to Continue";
cin >> temp;
cout << "Press Enter to Continue";
cin.ignore();
oder besser:
#include <limits>
cout << "Press Enter to Continue";
cin.ignore(std::numeric_limits<streamsize>::max(),'\n');
Versuchen:
char temp;
cin.get(temp);
oder noch besser:
Ich denke, die String-Eingang, bis Sie warten Geben Sie echte Zeichen ein, nicht nur einen Zeilenumbruch.
Ersetzen Sie Ihre cin >> temp
mit:
temp = cin.get();
http://www.cplusplus.com/reference/iostream/istream/get/
cin >>
wird für die EndOfFile warten. Standardmäßig wird cin das Flag skipws gesetzt haben, was bedeutet, dass es alle Leerzeichen überspringt, bevor es extrahiert und in Ihre Zeichenfolge eingefügt wird.
Versuchen:
cout << "Press Enter to Continue";
getchar();
Bei Erfolg wird das gelesene Zeichen zurück (gefördert zu einem int
Wert, int getchar (void);
), die in einem Testblock verwendet werden können (while
, etc).
Sie müssen conio.h einschließen, also versuchen Sie es, es ist einfach.
#include <iostream>
#include <conio.h>
int main() {
//some code like
cout << "Press Enter to Continue";
getch();
return 0;
}
Damit brauchen Sie nicht einen String oder ein int für diese nur getch();
Diese Antwort funktioniert nicht mehr, die Funktion getch() war veraltet. –
Die Funktion std::getline (bereits eingeführt mit C++ 98) bietet eine portable Möglichkeit, dies umzusetzen:
#include <iostream>
#include <string>
void press_any_key()
{
std::cout << "Press Enter to Continue";
std::string temp;
std::getline(std::cin, temp);
}
Ich fand dies dank dieser question und answer nachdem ich festgestellt habe, dass std::cin >> temp;
nicht mit leerer Eingabe zurückkehrt. Also habe ich mich gefragt, wie man mit optionalen Benutzereingaben umgehen soll (was sinnvollerweise für eine Stringvariable natürlich leer sein kann).
Das ist in der Tat ein plattformübergreifender Weg, man kann << flush hinter den cout und cin.sync() zwischen diesen Zeilen setzen, um sicherzustellen, dass es in jedem Fall funktioniert. ;-) –
cin ist an cout gebunden, also bevor irgend ein i/o von cin passiert, ist der output von cout schon geleert –
Warum ist der zweite Code "besser"? – dani