2009-05-24 3 views

ответ

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

или, лучше:

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

Это действительно кросс-платформенный способ, можно положить << заподлицо за cout и cin.sync() между этими строками, чтобы убедиться, что он работает в каждом случае. ;-) –

+4

cin привязан к cout, поэтому до того, как произойдет какой-либо i/o cin, выход cout уже сброшен –

+9

Почему второй код «лучше»? – dani

8

Try:

char temp; 
cin.get(temp); 

или еще лучше:

Я думаю, что входная строка не будет ждать, пока вы введите реальные символы, а не только новую строку.

7

Замените ваш cin >> temp с:

temp = cin.get(); 

http://www.cplusplus.com/reference/iostream/istream/get/

cin >> будет ждать ENDOFFILE. По умолчанию в cin будет установлен флаг skipws, что означает, что он пропускает все пробелы перед извлечением и помещением в строку.

2

Попытка:

cout << "Press Enter to Continue"; 
getchar(); 

В случае успеха, чтения символов возвращается (повышен до int значения, int getchar (void);), который может быть использован в испытательном блоке (while, и т.д.).

2

Вам необходимо включить conio.h, так что попробуйте это, это легко.

#include <iostream> 
#include <conio.h> 

int main() { 

    //some code like 
    cout << "Press Enter to Continue"; 
    getch(); 

    return 0; 
} 

С, что вам не нужна строка или Int для этого просто getch();

+1

Этот ответ больше не работает, функция getch() устарела. –

0

Функция std::getline (уже введена с C++ 98) предоставляет переносимый способ реализации этого:

#include <iostream> 
#include <string> 

void press_any_key() 
{ 
    std::cout << "Press Enter to Continue"; 
    std::string temp; 
    std::getline(std::cin, temp); 
} 

Я нашел это благодаря этому question и answer после того, как заметил, что std::cin >> temp; не возвращается с пустым вводом. Поэтому мне было интересно, как обращаться с дополнительным пользовательским вводом (что имеет смысл для строковой переменной, конечно, может быть пустым).

Смежные вопросы