如题,之前一直使用vs2010,但是此版本对部分库函数的使用有所限制,不怎么好用,如sqrt()里的参数得是double型。之后又装了vs2015,但是scanf()在vs2015里报错,编译器提示要用scanf_s代替.百度后发现在使用vs2010以上IDE时,经常会出现报错说让scanf换成scanf_s这是一种安全周期检测,最新的微软编译器认为scanf的使用存在安全隐患,因为C/C++中的字符串处理都是以\0为截止符的,如果搜索不到\0,容易出现字符串越界所有vc扩展的所谓安全标准库,都添加了一个参数用以指定字符串参数的长度,用以避免这种安全隐患。
例如scanf(“%s”,&name,n),整形n为name类型的大小,如果name是数组,那n就是该数组的大小
此外还可以通过以下方法来避免:
1.关闭安全开发检测
2.在工程属性->预处理器中找到预处理器定义添加一行_CRT_SECURE_NO_DEPRECATE
3.在代码开头加一行#pragma warning(disable:4996)
笔者编写程序时用的方法三,挺好用的。