VS编译器常见的问题

前言

我们在开始学习C语言时,会遇到各种编译器,VS,Dev-C++,VC++6.0等等,当然编译器只是一个学习的工具,有好有坏我们就不在这里做过多的评判。这里我们将针对使用VS2013和VS2019的小伙伴经常遇到的问题做一个简单的解决方法。

问题一——VS2013控制台一闪而过

俗话说:万事开头难,有的小伙伴用VS2013写一个hello world,结果没有打印结果,心想:才写一个hello world,就遇到问题,这编程怎么这么难?其实并不是没有打印结果,而是控制台一闪而过,当然解决方案也是非常的简单。

解决方法1

第一步
在这里插入图片描述
找到解决方案资源管理器(如果没有,在上方菜单栏中找到视图,在视图中再找到解决方案资源管理器),在自己创建的项目中右击鼠标,找到属性,点击属性。
第二步
在这里插入图片描述
点击属性后会弹出属性页的窗口,按照顺序点击:配置属性——>连接器——>系统,然后再子系统中选择控制台,点击确定就可以完成。

解决方法2

在这里插入图片描述
在打印hello world的下方加上system(“pause”);因为使用到了system,所以要引入库<stdlib.h>。这个方法虽然能解决,但不是一劳永逸的方法,因此推荐使用解决方法1
PS:这个问题只会出现在VS2013上,VS2019不会出现这个问题,因为VS2019子系统默认是控制台。

问题二——scanf函数报错

这个问题也是小白初装VS编译器遇到的问题(VS2013和VS2019都会遇到),每次遇到输入scanf时,总会遇到这样一个错误。
例如:

#include <stdio.h>
int main()
{
	int a = 0;
	scanf("%d", &a);
	printf("%dn", a);
	return 0;
}

在这里插入图片描述
这不免又会给小白一个痛击,那么该如何解决呢?我们可以看到这个错误是说scanf不安全,要我们使用scanf_s()函数,因此我们只需要将scanf改为scanf_s就可以了,但是又有另一个问题:scanf_s是VS自己的输入函数,因此不具备可移植性,也就是说,我们如果将代码放入其他的编译器,同样无法识别scanf_s函数,因此我们需要找其他的解决办法。

解决方法

我们可以看到上面的错误提示提到了这样一句话:use _CRT_SECURE_NO_WARNINGS。如果我们要让scanf不报错只需要将这样的一句话放在开头并用#define修饰就可以了(后面的1可加可不加)。像这样:
在这里插入图片描述
这样就没有错误的产生,但是如果每次都需要加上这么一句话,那么也太麻烦了。那么我们如何做呢?
第一步:
在这里插入图片描述
找到自己的VS的安装目录。
第二步:
在这里插入图片描述
进入目录:Visual Studio IDE——>Common7——>IDE——>VC——>VCProjectItems,这时候能看到一个newc++file的文件。
第三步:
在这里插入图片描述
记事本打开,输入这样的一句话#define _CRT_SECURE_NO_WARNINGS 1,然后保存(保存还是保存到原本的位置)。这样就可以在新建文件后,就直接加上了#define _CRT_SECURE_NO_WARNINGS 1。

问题三——新建多个源文件引起的报错

在学习编程初期,有的小伙伴不太喜欢把原本的代码注释掉,而是喜欢新建项重新使用main()函数,这样就可以看到多个源文件,从而使得自己的代码变得有条理,有这种习惯固然是件好习惯,但是同样会带来一个问题。例如:
在这里插入图片描述
我们创建了两个源文件:test.c和test1.c。
test.c:
在这里插入图片描述
test1.c
在这里插入图片描述
当我们编译其中之一时,就会报出这样一个错误:
在这里插入图片描述
很多小白在这里就懵逼了,这又是些啥?其实是因为你有俩个main()函数,我们知道一个项目里面有且只能有一个main()函数,然而test.c有一个main()函数,test1.c又有一个main()函数,编译器不知道程序的入口是哪个,那么就会导致报错。知道了原因,那么解决方法就很简单了。

解决方法1

如果你要编译test1.c文件,那么我们可以把test.c文件屏蔽掉。
第一步:
在这里插入图片描述
找到test.c,右击鼠标,找到属性。
第二步:
在这里插入图片描述

找到配置属性中的常规,在从生成中排除下拉框中选择 “是”,点击确定。这样编译器就排除了test.c的编译过程。

解决方法2

直接注释main()函数就可以了,如果是平时的代码练习,我们完全不需要新建一个.c文件重写main()函数,只需要写完一个小的练习,就把所写的main()函数注释掉,重新写main()函数就可以了。如果偏要新建一个.c文件重写main()函数,那么需要把其他不需要用到的main()函数注释掉才可以,这样才不发生报错。
好了,这是几个比较常见的VS编译器出现的问题,如果对你有所帮助,别忘了点赞,有任何问题或者建议,欢迎私信和评论,谢谢大家!

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>