一、为什么出错? C语言中函数是不安全的。在使用scanf函数时,并没有对将要放入的数据所占用的空间进行检测(可能出现数据越界),因此这样是不够安全的。VS虽然提供了scanf_s函数,但是这是VS的函数,而不是C语言的函数,如果使用scanf_s函数,代码的可移植性就会降低,所以不推荐使用VS的函数。 二、如何解决? 1. 暂时解决 在源文件的头部加入 #define _CRT_SECURE_NO_WARNINGS 1 后,编译运行即可。 2. 永久解决 在VS的安装目录中找到newc++file.cpp文件,如果找不到,具体文件,可以先进入安装目录,之后用资源管理器搜索(很快能搜到)。 右击 点击 -> 属性 修改文件权限。 用记事本打开,加入 #define _CRT_SECURE_NO_WARNINGS 1 后,保存。 保存之后,再创建C源文件时,就会自动添加上 #define _CRT_SECURE_NO_WARNINGS 1