Questo non funziona:Premere Invio per continuare
string temp;
cout << "Press Enter to Continue";
cin >> temp;
Questo non funziona:Premere Invio per continuare
string temp;
cout << "Press Enter to Continue";
cin >> temp;
cout << "Press Enter to Continue";
cin.ignore();
o meglio:
#include <limits>
cout << "Press Enter to Continue";
cin.ignore(std::numeric_limits<streamsize>::max(),'\n');
Prova:
char temp;
cin.get(temp);
o, meglio ancora:
Penso che la stringa di input attenderà fino a quando inserisci personaggi reali, non solo una nuova riga.
Sostituisci il tuo cin >> temp
con:
temp = cin.get();
http://www.cplusplus.com/reference/iostream/istream/get/
cin >>
attende l'EndOfFile. Per impostazione predefinita, cin avrà il flag skipws impostato, che significa che "ignora" qualsiasi spazio bianco prima che venga estratto e inserito nella stringa.
Prova:
cout << "Press Enter to Continue";
getchar();
In caso di successo, la lettura personaggio è tornato (promosso a un valore di int
, int getchar (void);
), che può essere utilizzato in un blocco di prova (while
, ecc).
È necessario includere conio.h quindi provare questo, è facile.
#include <iostream>
#include <conio.h>
int main() {
//some code like
cout << "Press Enter to Continue";
getch();
return 0;
}
Con che non hai bisogno di una stringa o un int per questo solo getch();
Questa risposta non funziona più, la funzione getch() è stata deprecata. –
La funzione std::getline (già introdotto con C++ 98) fornisce un modo portabile per implementare questa:
#include <iostream>
#include <string>
void press_any_key()
{
std::cout << "Press Enter to Continue";
std::string temp;
std::getline(std::cin, temp);
}
Ho trovato questo grazie a questo question e answer dopo aver osservato che std::cin >> temp;
non restituisce con input vuoto. Quindi mi chiedevo come comportarmi con l'input dell'utente facoltativo (il che è logico che una variabile stringa possa essere vuota).
Questo è davvero un modo multipiattaforma, si può mettere << flush dietro il cout e cin.sync() tra quelle righe per assicurarsi che funzioni in ogni caso. ;-) –
cin è legato a cout, quindi prima di qualsiasi i/o di cin succede, l'output di cout è già svuotato –
Perché il secondo codice è "migliore"? – dani