Это не работает:
string temp;
cout << "Press Enter to Continue";
cin >> temp;
Это не работает:
string temp;
cout << "Press Enter to Continue";
cin >> temp;
cout << "Press Enter to Continue";
cin.ignore();
или, лучше:
#include <limits>
cout << "Press Enter to Continue";
cin.ignore(std::numeric_limits<streamsize>::max(),'\n');
Try:
char temp;
cin.get(temp);
или, еще лучше:
char temp = 'x';
while (temp != '\n')
cin.get(temp);
Я думаю, что ввод строки будет ждать, пока вы не введете реальные символы, а не только новую строку.
Замените cin >> temp
на
temp = cin.get();
http://www.cplusplus.com/reference/iostream/istream/get/
cin >>
будет ждать EndOfFile. По умолчанию в cin будет установлен флаг skipws, что означает, что он пропускает все пробелы перед извлечением и помещением в вашу строку.
Try:
cout << "Press Enter to Continue";
getchar();
При успешном завершении возвращается символ (продвигается до значения int
, int getchar ( void );
), который может использоваться в тестовом блоке (while
и т.д.).
Вам нужно включить conio.h, поэтому попробуйте это, это легко.
#include <iostream>
#include <conio.h>
int main() {
//some code like
cout << "Press Enter to Continue";
getch();
return 0;
}
Для этого вам не нужна строка или int для этого просто getch();
Функция std :: getline (уже представленная в С++ 98) предоставляет переносимый способ реализовать это:
#include <iostream>
#include <string>
void press_any_key()
{
std::cout << "Press Enter to Continue";
std::string temp;
std::getline(std::cin, temp);
}
Я нашел это благодаря этому вопросу и ответу после того, как заметил, что std::cin >> temp;
не возвращается с пустым вводом. Поэтому мне было интересно, как работать с необязательным пользовательским вводом (который имеет смысл для строковой переменной, конечно, может быть пустой).
#include <Windows.h>
int main()
{
Sleep(3000); //wait for 3 seconds to continue
}