VS编译器常见的问题

  • 前言
  • 问题一——VS2013控制台一闪而过
    • 解决方法1
    • 解决方法2
  • 问题二——scanf函数报错
    • 解决方法
  • 问题三——新建多个源文件引起的报错
    • 解决方法1
    • 解决方法2

前言

我们在开始学习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("%d\n", 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编译器出现的问题,如果对你有所帮助,别忘了点赞,有任何问题或者建议,欢迎私信和评论,谢谢大家!

VS编译器常见的问题相关推荐

  1. c++编译器常见warning与解决方案总结

    编译器编译c++代码,有时候难免会有一些报警信息,不要小看这些warning,很多warning都值得注意,warning在某些情况下会引发error.能解决的warning,最好就把它搞定吧.当然大 ...

  2. C语言的编译器常见的有哪些?

    1. visual c++6.0 (常见的就是学校机房安装) : 2. visual studio (很好用,很多人选择安装) : 3. TCC非常方便:大小只有几M,但是编译时麻烦: 4. Code ...

  3. 安编译器错误_Fortran编译器常见错误提示及原因

    d. 如果图上的 include . lib . path 几个变量没有,请点击新建:如有,点击编辑:按下面变 量值进行修改: 变量: path 值: c:\MSDEV\bin; %path% 变量: ...

  4. c语言编译器error,KEIL C编译器常见警告与错误信息的解决办法

    对于函数的自变量.局部变量和全局变量声明如果没有指定内存类型,则内存模式将成为内定的内存类型.如果 指定了内存类型的变量,则不理会内存模式,完全有所指定的内存类型为主. SMALL模式:小模式 所有的 ...

  5. 2.Java异常学习

    1.Java异常的概念 异常的例子 1.除法就是一个需要捕获异常的例子,除数又可能是0 异常处理的基本流程如下 一旦发生异常,就使得程序不按照原来的流程继续的运行下去 a.程序抛出异常 try{ th ...

  6. 【转】飞扬青云_Qt开发经验

    转自:Qt开发经验: 自己总结的这十多年来做Qt开发以来的经验,以及Qt相关武林秘籍电子书,会一直持续更新增加,欢迎各位留言增加内容或者提出建议,谢谢! 一.开发经验 01:001-010 当编译中发 ...

  7. Java内存模型常见问题

    1.什么是内存模型? 在多核系统中,处理器一般有一层或者多层的缓存,这些的缓存通过加速数据访问(因为数据距离处理器更近)和降低共享内存在总线上的通讯(因为本地缓存能够满足许多内存操作)来提高CPU性能 ...

  8. 总结-最全linux工具的使用

    常用工具: 1. 软件包管理工具 2.编辑器 3.编译器 4.调试器 5.项目自动化构建工具 6.项目版本管理工具 软件包管理工具:安装其他的软件工具. yum-类似于手机的应用商店. 提供软件包的查 ...

  9. Linux篇【3】:Linux环境基础开发工具使用(中)

    目录 一.Linux 编译器:gcc/g++ 的使用 1.1.知识拓展: 1.2.如何安装 C/C++ 标准静态库: 1.3.头文件与库文件: 1.4.静态库,静态链接,动态库,动态链接: 二.简单 ...

  10. Qt开发经验小技巧合集

    一.开发经验 当编译发现大量错误的时候,从第一个看起,一个一个的解决,不要急着去看下一个错误,往往后面的错误都是由于前面的错误引起的,第一个解决后很可能都解决了. 定时器是个好东西,学会好使用它,有时 ...

最新文章

  1. ARKit 与 ARCore比对(三)
  2. 人类是怎么从猩猩身上惹来艾滋病的?人与兽的关系很单纯!
  3. Linux命令篇之usermod命令和passwd命令
  4. 关于DateTime对象序列化为Json之后的若干问题
  5. html5 手机上传图片
  6. 【OpenGL】六、Visual Studio 2019 配置 GitHub ( 提取和拉取简介 | 拉取远程代码 )
  7. 985高校6年招聘8000多青年人才引热议!高校割起年轻博士的韭菜有多疯狂?
  8. ansible编译安装--操作系统环境Redhat6.4
  9. spark上运行xgboost-scala接口
  10. Android中下载、安装和卸载(原)
  11. 在网站中使用Session的简单例子
  12. IOS--CALayer实现,界限、透明度、位置、旋转、缩放组合动画(转)
  13. 单播/组播/广播 通讯协议的特点及应用对比
  14. 打开 Freetextbox 的 InsertImageFromGallery 及如何接收 ftb.imagegallery.aspx 返回的图片信息...
  15. Android源码在线查看工具
  16. 怎样更改计算机ip,怎么快速修改电脑ip地址
  17. java简历vue专业技能_用vue 写一个好看的个人简历
  18. tpm_crb MSFT0101:00: [Firmware Bug]: ACPI region does not cover the entire command/re处理
  19. 2022年山东省安全员C证考试资料及山东省安全员C证考试试题
  20. oracle 一维数转二维数组,js将一维数组转化为二维数组

热门文章

  1. 勇者游戏C语言,c语言命令行-勇者斗恶龙
  2. 御剑江湖一键端mysql_御剑情缘gm完整端下载
  3. android 文件md5校验失败怎么办,更新包md5校验失败的4个原因和解决方法!游戏lol更新md5验证失败...
  4. 【plantuml】程序员绘图工具
  5. python入门教程(非常详细),从零基础入门到精通,看完这一篇就够了
  6. 数据分析师初级—中级—高级,每个阶段都需要学习什么?
  7. 【C语言视频教程完整版】从入门到进阶,适合C语言初学者计算机考研党考计算机二级大一大二学生学习观看~~~
  8. 计算机毕业设计Python+djang的药物管理系统
  9. 利用360卫士打补丁
  10. 元气骑士没有手柄怎么解锁机器人_元气骑士机器人怎么解锁?机器人获取方式和技能介绍...