Visual Studio 2010 — Какой код следует использовать вместо getche в Stack Overflow

Я новичок в C ++,

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

getche();

на языке с. но вместо getche() что я должен использовать в C ++;
Я старался

std::cin.get();

но окна консоли отображаются, а затем быстро выключаются.

1

Решение

окна консоли отображаются, а затем быстро отключаются.

Кажется, у вас есть что-то в буфере, и cin.get читает это как персонаж. Например:

int i = 0;
std::cin >> i;
std::cin.get();

Когда вы вводите номер и нажимаете Enter, cin >> i будет потреблять номер, но он уйдет \n символ (который происходит от нажатия клавиши Enter) в буфере, который будет прочитан std::cin.get() не дожидаясь ввода пользователем новых данных.

Чтобы этот пример работал так, как мы хотим, нам нужно очистить буфер перед вызовом std::cin.get():

int i = 0;
std::cin >> i;
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
std::cin.get();

std::numeric_limits определяется в <limits> заголовочный файл

3

Другие решения

В Windows я обычно использую system("pause");, которые называют ОС pause команда, чтобы предотвратить закрытие окна консоли после завершения программы. Эта команда отображает приятное сообщение и ждет любой клавиши :).

Нажмите любую клавишу для продолжения . , ,

Я не знаю, существует ли команда в других ОС или нет, и я не знаю, является ли это тем, что вы пытаетесь заархивировать :).

Функция находится в cstdlib или же stdlib.h заголовочный файл

Наконец, что не менее важно, не очень хорошая идея вызывать getch () в последней строке кода, чтобы предотвратить закрытие консоли. Но если вы действительно предпочитаете этот способ, я предлагаю использовать что-то вроде

std::string temp;
std::cin>>temp;

В конце вашей основной функции, как раз перед return заявление.

0

Просто включите <stdlib.h> и в основном метод использования system("pause") Ваше окно консоли останется неподвижным.

0

Пожалуйста, используйте следующее
Геч ()

-1
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector