Ответ 1
Вы не должны использовать ни того, ни другого.
Вы должны использовать
#include <iostream>
...
int main()
{
...
std::cin.ignore(); //why read something if you need to ignore it? :)
}'
У меня есть программа Win32, которая работает в цикле. Я хотел бы иметь возможность приостановить эту программу, ожидая нажатия клавиши. Неважно, использую ли я какой-либо ключ или какой-то конкретный ключ, но мне нужно, чтобы программа зависала, пока я не нажму что-нибудь.
Мне интересно, какую команду я должен использовать. Я работаю с Visual С++, и компилятор не распознает ни одну из следующих команд:
cin.get()
std::cin.get()
getch()
Я относительно новичок в С++. Я понимаю, что в консольном приложении это довольно простое действие (cin.get), но это может быть сложнее в Win32. Любое простое решение или обходное решение будут оценены. Программа предназначена для использования в одном научном эксперименте, поэтому на данный момент я не суетился, если решение немного бот (!)
Извините, если я пропустил какую-либо важную информацию из моего вопроса.
Вы не должны использовать ни того, ни другого.
Вы должны использовать
#include <iostream>
...
int main()
{
...
std::cin.ignore(); //why read something if you need to ignore it? :)
}'
Try
#include <iostream>
using namespace std;
char temp;
cin >> temp;
Предполагая, что вы ищете альтернативу для getch (которая не отображает эхо на экран).
Если вы используете окна и визуальную студию, попробуйте использовать _getch. Вот ссылка на него http://msdn.microsoft.com/en-us/library/078sfkak(v=VS.100).aspx
Вы должны #include <iostream>
и использовать std::cin.get();
Я думаю, что getch()
- это функция C, но поскольку вы используете С++, более подходящим будет cin
.
Пример:
#include <iostream>
#include <conio.h>
int main()
{
std::cout << "Press any key to continue . . ." << std::endl;
_getch(); // wait for keypress
}
_getch()
является С++ эквивалентным C getch()
HWND hwnd = ::GetConsoleWindow();
while (!((::GetForegroundWindow() == hwnd) &&
((::GetKeyState(VK_SPACE) & 0x8000) != 0)))
::Sleep(0);
Предположим, что это не лучший способ, но он решил мою проблему. Замените VK_SPACE на любое другое значение, которое вам нравится. И это не переносимо.