题
在某个时间我在大学里做了一些C和C ++,但我并没有太多关注C ++。现在我想关注C ++但是当我使用 getch()
函数时,我会从下面收到警告。
警告C4996:'getch':不推荐使用此项目的POSIX名称。而是使用符合ISO C ++的名称:_getch。有关详细信息,请参阅在线帮助。
现在,我正在使用VS 2005 express,我不知道如何处理此警告。我需要在 printf()
之后使用 getch()
一条错误消息或其他需要按键命中的内容。
你能帮帮我吗?
解决方案
Microsoft决定在不使用下划线的情况下标记名称,因为这些名称是为程序员选择保留的。如果实现特定扩展要遵守C或C ++标准,则应使用以全局命名空间中的下划线开头的名称 - 或者它们应将自身标记为符合标准的组合环境,例如POSIX / ANSI / ISO 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 << '
如果您在控制台上输入“a”,则输出“a”。
<< endl; break;
}
如果您在控制台上输入“a”,则输出“a”。