Как решить C ++ Ошибка C4996 getch: имя POSIX для этого элемента устарело. Вместо этого используйте совместимое имя ISO C и C ++: _getch

Для новичков в C ++ использование современных инструментов может стать большой головной болью, особенно когда версия VS вашей школы довольно старая и у вас дома установлена ​​последняя версия VS. Одним из самых известных упражнений для студентов, является знаменитый привет мир на этом языке. Играя с консольным приложением, упражнение простое, напечатайте «привет мир» и держите консоль открытой, чтобы увидеть напечатанное сообщение. В соответствии со стилем программирования вашего учителя вы можете получить пример кода с помощью cout:

#include
#include
using namespace std;
void main(void)
{
cout << "Hello World" << endl;
getch();
}

Или используя printf чтобы распечатать текст в консоли:

#include
#include
void main(void)
{
printf("Hello World");
getch();
}

Оба сценария полностью допустимы и используют метод getch, чтобы держать консоль открытой. Они должны нормально работать в компиляторах школы, где VS всегда устарел, однако, если вы используете современный компилятор для компиляции любого из предыдущих примеров (используя последнюю версию Visual Studio), вы столкнетесь с исключением. Проблема в том, что метод getch является нестандартной функцией, и компиляторы MS традиционно предлагали их под двумя именами, но Microsoft решила определить имя без подчеркивания как устаревшее, потому что эти имена зарезервированы для программиста.

Решение

Самый простой способ решения этой проблемы - использовать _getch метод с подчеркиванием в качестве префикса:

#include
#include
using namespace std;
void main(void)
{
cout << "Hello World" << endl;
// Use the getch method with a prefixed underscore
_getch();
}

Этот метод работает так же, но не будет признан устаревшим. Вы также можете использовать cin.get метод пространства имен std:

#include
#include
using namespace std;
void main(void)
{
printf("Hello World");
// Allow the input of text in the command line
// this will keep the console open
cin.get();
}
Ссылка на основную публикацию
Adblock
detector