문제
어딘가에 제 시간에 나는 대학에서 C와 C ++를했지만 C ++에 많은 관심을 기울이지 않았습니다. 이제 C ++에주의를 기울이고 싶지만 사용할 때 getch()
기능, 아래에서 경고를받습니다.
경고 c4996 : 'getch':이 항목의 posix 이름은 더 이상 사용되지 않습니다. 대신 ISO C ++ 적합성 이름 : _getch를 사용하십시오. 자세한 내용은 온라인 도움말을 참조하십시오.
이제 저는 VS 2005 Express를 사용하고 있으며이 경고에 대해 어떻게 해야할지 모르겠습니다. 사용해야합니다 getch()
나 후 printf()
오류 메시지 또는 키 히트가 필요한 다른 것.
저를 도와 줄 수 있습니까?
해결책
Microsoft는 프로그래머가 선택할 수 있도록 밑줄이 더 이상 사용되지 않고 이름을 표시하기로 결정했습니다. 구현 특정 확장은 C 또는 C ++ 표준을 준수하려면 글로벌 네임 스페이스의 밑줄로 시작하는 이름을 사용해야합니다. 그런 다음 함수는 해당 표준 중 하나에 해당합니다.
읽다 getcwd ()에 대한이 답변 물론 물건을 잘 알고있는 PJ Plauger의 설명을 위해서도.
사용자가 입력 한 일부 키를 기다리는 데 관심이 있다면 실제로 사용하지 않을 이유가 없습니다. getchar
. 그러나 때로는 사용자가 사용하는 것이 더 실용적이고 편리합니다. _getch
그리고 친구들. 그러나 이들은 C 또는 C ++ 표준에 의해 지정되지 않으므로 프로그램의 휴대 성을 제한합니다. 그것을 명심하십시오.
다른 팁
C ++에 있다면 왜 printf
그리고 getch
? 사용을 고려하십시오 cout
그리고 cin.get
대신에.
getch () 대신 _getch ()를 사용합니다.
왜 이것을 필요로합니까? 사용하지 않는 이유 getchar()
단일 캐릭터를 캡처 해야하는 경우?
"std :: getc (stdin);"를 사용할 수 있습니다. 'getch ();'처럼 작동합니다. 내 프로그램에서. 'getch ()'에 대한 좋은 대안이라고 생각합니다. 내가 틀렸다면 말해줘.
#include <cstdio>
switch (std::getc(stdin)) {
case 'a': cout << 'a' << endl ; break;
case 'b': cout << 'b' << endl ; break;
default: cout << '$' << endl; break;
}
콘솔에서 'A'를 입력하면 'A'를 출력합니다.