如何解决C++错误C4996’getch’(不建议使用此项目的POSIX名称。而是使用符合ISO C和C ++的名称:_getch)
对于使用C ++的新手来说, 使用现代工具可能会让人头疼, 特别是在学校的VS版本很旧并且你在家中拥有最新版本的VS时。对于学生而言, 最著名的练习之一就是用这种语言着称的世界。使用控制台应用程序, 练习很简单, 打印”
hello world”
并保持控制台打开以查看打印的消息。根据你老师的编程风格, 你可能会使用cout收到一个示例片段:
#include <
iostream>
#include <
conio.h>
using namespace std;
void main(void){ cout <
<
"Hello World" <
<
endl;
getch();
}
或使用printf在控制台中打印文本:
#include <
iostream>
#include <
conio.h>
void main(void){ printf("Hello World");
getch();
}
这两个脚本都是完全有效的, 并且它们使用getch方法保持控制台打开。它们应该在VS总是过时的学校的编译器中正常工作, 但是, 如果你使用现代的编译器来编译任何先前的示例(使用Visual Studio的最新版本), 你将面临异常。问题在于getch方法是一个非标准函数, MS编译器传统上以两种名称提供这些名称, 但是Microsoft决定在不使用下划线的情况下定义名称, 因为这些名称仅供程序员使用。
解此问题最简单的解决方法是使用_getch方法, 并在下划线作为前缀:
#include <
iostream>
#include <
conio.h>
using namespace std;
void main(void){ cout <
<
"Hello World" <
<
endl;
// Use the getch method with a prefixed underscore _getch();
}
此方法的工作原理相同, 但不会被视为不赞成使用。你还可以使用std名称空间的cin.get方法:
#include <
iostream>
#include <
conio.h>
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();
}
【如何解决C++错误C4996’ getch’ (不建议使用此项目的POSIX名称。而是使用符合ISO C和C ++的名称:_getch)】编码愉快!
推荐阅读
- 如何在Silex项目中使用CLI清除缓存
- 如何在自己的插件之前在Shopware中注册第三方插件的自定义模型
- 如何反序列化使用Doctrine存储在数据库中的DC2Type数组数据类型
- 如何在Symfony 3中生成通用唯一标识符(UUID)
- 如何在基于CLI的基于Unix的操作系统中使用TAR压缩整个目录(包括子目录)
- 通过USB连接到Xamarin.Android应用程序与网站进行通信
- Xamine Android WindowSoftInput Resize(特定页面)
- Xamarin Android(此应用程序使用不正确的配置构建)
- RegisterNavigationServiceAppStart期间的MvxIoCResolveException