1. 关于scanf函数在VS2013编译器中不安全问题的解决方案
在VS2013中使用scanf函数时经常会出现以下问题:
( 注:以两个数的求和代码为例)
如
(1)报出如下错误:
“错误 1 error C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. d:\vs2013\test-scanf-1\test-scanf-1\test-scanf-1.cpp 7 1 test-scanf-1”
想必,你的程序一定是这样的吧:
解决方案1
我们可以看出在上述报错中有一句话:“To disable deprecation, use _CRT_SECURE_NO_WARNINGS. ”,所以我们可以在程序前加入“#define _CRT_SECURE_NO_WARNINGS 1”解决问题:
如下:
解决方案2(不推荐,因为会导致代码会在其他编译器下无法编译)
使用scanf_s函数,如下:
(2)当开始调试时,在scanf函数中输入数据后,回车后 运行界面消失/未看到结果(在如下界面回车后 界面消失/未看到结果)
解决方案:
—1:在屏幕上找到“解决方案资源管理器”(下图右侧)
—2:右击文件名(下图蓝色区域)
—3:出现如下提示框选择“属性”(最下面)
—4:选择并双击“链接器”
—5:选择“系统”
—6:选择“系统”中的“子系统”
—7:选择“子系统”中的“控制台”
—8:“确定”后解决问题
(3):出现如下错误
解决方案:出现该错误的原因是创建的多个源文件中程序未“屏蔽”,只需把除此程序以外的所有程序“屏蔽”(以下图为例,屏蔽“test-s-1”中的程序,test-i-1中的程序即可正常运行)
2. 对与C语言入门者如何理解scanf函数的作用
scanf是一个计算平台,是一个没有按键的待编程计算器/选择器,需要你编程并输入数据,它就会按程序计算输出结果,但是它是被动的,并不能直接计算已定义的数据并输出结果,需要人为输入数据。
我们电脑上的计算器显示界面:
scanf函数运行界面:
是不是有一些相似呢?他们都在显示着空空的界面,等待着你去输入数据,其中scanf函数还可以在选择语句(下一篇总结)中起到输入并运算选择的作用,如下:
最后: