老规矩,看前先点赞+关注。。。。。。。。。。。。。。。。。。。。。。。。。。。。
刚入坑c语言的伙伴可能会出现以下问题:
这是为什么呢?
C语言的标准函数中,一些读取或写入内存的函数存在内存越界的问题,从而使得内存数据变得不安全。如scanf、gets、strcat、fopen等函数都存在着这样的问题。 为了避免这个问题,在VS中,另外提供了如scanf_s,get_s,strcat_s、fopen_s等相关的改进函数,来替代原来的标准函数的功能,并通过添加内存读取范围的限制来解决不安全的问题。
当然,上诉情况仅会出现在.cpp文件中,实际上,如果同学们只是学c语言,没必要保存源程序为.cpp文件,因为.cpp文件是C++语言运行环境。一般来说,如文件后缀为.cpp,则编译器默认采用C++语法标准进行编译;如文件后缀为.c,则编译器默认采用C语法标准进行编译。而C++部分兼容C,C语言程序既可以保存为.c文件,也可以保存为.cpp文件;而C++程序则只能保存为.cpp程序。因此,在.cpp文件写代码时,就会发生上诉安全警告。
但总是这样_s,感觉看着怪怪的,而且同学问你为何要_s时,你也不好解释。 在实际的应用中,也许使用VS提供的安全函数会更加合理。但是,在学习中,几乎所有的课本以及教程都使用的原来的标准函数,另外考虑到移植性的问题,除了VS环境,其他环境中并没有提供改进后的函数。因此,我们通常任然需要标准的库函数来实现相关功能。 但是,如果在VS中使用原始的函数,编译器将会报错。这对使用和学习都带来了相当的不变。
那么该如何解决呢,我这儿提供两个非常简洁且高效的方法:
1、如果你仅仅是编写c语言程序,将源程序保存为.c文件,就不会出现上诉安全警告。(下图示例)
(1)若还未新建源文件,直接新建时改后缀名:
点击源文件添加新建项
修改.cpp文件为.c文件,点击添加即可
(2)若已新建,并且写完代码
找到解决方案管理器
右键该源文件,选择重命名(.c即可)
2.直接在源文件最前面加上“#define _CRT_SECURE_NO_WARNINGS”,直接暴力秒杀
您的点赞和关注是我更新下去的动力!!!