2009-05-24 17 views

risposta

69
cout << "Press Enter to Continue"; 
cin.ignore(); 

o meglio:

#include <limits> 
cout << "Press Enter to Continue"; 
cin.ignore(std::numeric_limits<streamsize>::max(),'\n'); 
+0

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. ;-) –

+4

cin è legato a cout, quindi prima di qualsiasi i/o di cin succede, l'output di cout è già svuotato –

+9

Perché il secondo codice è "migliore"? – dani

8

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.

7

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.

2

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).

2

È 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();

+1

Questa risposta non funziona più, la funzione getch() è stata deprecata. –

0

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).

Problemi correlati