Visual Studio中的scanf()报错以及编译器的选择

Posted 流浪孤儿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Visual Studio中的scanf()报错以及编译器的选择相关的知识,希望对你有一定的参考价值。

前言

        学习C语言必然需要一种或多种编译器,若对于小萌新来说不知道选什么编译器又或者选了不知道怎么用那就会劝退对编程有兴趣的他们。下面先会对Viual Studio中的scanf()报错的问题先展开,然后再介绍编译器如何进行选择

出现的问题

问题分析

Viual Studio会被C语言的库函数进行优化,该编译器认为原来的库函数是不太安全的,于是他们自己搞出了自己的一套函数,而且还不允许我们使用他们已优化的C标准的库函数。

1、若是用了他们的函数那么你所写的代码就无法跨平台使用了,也就是说你的代码只能在Viual Studio上运行!

2、他们自己对C语言的标准库函数的优化也没那么强大,也是存在安全问题的

问题解决

将scanf()换成他们的scanf_s()就不会报错了,但是这样不提倡,看下面的方法

 看画线部分,人家告诉我们用这个_CRT_SECURE_NO_WARNINGS,可是怎么用呢没告诉我们,可以说他们充满了恶意

其实只需要在第一行加上这句话就行了#define _CRT_SECURE_NO_WARNINGS 1

好了,如果这样做的话问题确实解决了,但是每次创建.c文件都要自己加上这句话是不是傻眼了

一劳永逸

 来到这里继续右击点击打开文件位置

 开始搜索

 出来这个文件后先左键点一下选中,下面为选择状态

 右击它

 

 右击记事本以管理员身份打开

 

 #define _CRT_SECURE_NO_WARNINGS 1把这句添加进去,然后保存退出大功告成

编译器的选择

现在的C编译器用的比较多的:

学生党VC6.0

 

 说实话这体验感是真不强,没有格式自动调整,代码补全,库函数不全,不过该软件小,不到100M,现在window10可以兼容VC6.0了,记得那时候win10才发布没多久我用的VC6.0只能以兼容模式运行啊,对于只想考国二的学生这个可以用来练练手感

DevC++

这款软件挺流行的,但依然有许多缺陷

 Dev-C++对C11支持的不是很好,C11下for(int i=0;i<100;i++)是支持的

 Dev-C++已经停止维护了,目前最新版版本为5.11,上次更新时间为2015年4月。

强大的Visual Studio

 具体细节不多说,用它就对了(悄悄告诉你,我在学C的一个月就只用了它)

以上是关于Visual Studio中的scanf()报错以及编译器的选择的主要内容,如果未能解决你的问题,请参考以下文章

错误记录Visual Studio 编译 C++ 代码报错 ( To disable deprecation, use _CRT_SECURE_NO_WARNINGS. )

visual studio 2017显示的错误怎么办?小弟刚学不懂。

Unity报错解决办法:Visual Studio Editor Package version 2.0.11 is available........

错误记录安装 Visual Studio 2013 中文语言包报错 ( 需要 Microsoft Visual Studio Test Agent , 但此计算机上并为安装它 )

C语言:为啥在Visual Studio 2010中写一句简单的for(i=0;i<6;i++) scanf("%d ",&V[i]);都会提示错误。

Visual Studio安装后双击报错