VS编译器常见的问题

article/2025/10/6 0:55:30

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编译器出现的问题,如果对你有所帮助,别忘了点赞,有任何问题或者建议,欢迎私信和评论,谢谢大家!


http://chatgpt.dhexx.cn/article/7ncRqJKI.shtml

相关文章

linux如何对mysql进行定时备份并定时清理3天之前的备份数据

linux如何对mysql进行定时备份并定时清理3天之前的备份数据 一.Linux对mysql进行定时备份 1.确保Linux上是否已经安装了mysql以及crontab 安装mysql可参考:https://blog.csdn.net/m0_51285952/article/details/123371653 安装crontab可参考:https://blog.csdn.net/hukai0q/…

docker定时备份mysql-定时备份docker中mysql的数据

一、概念 方法一&#xff1a;备份是通过如下命令实现 docker exec -it mysql&#xff08;镜像号&#xff09; mysqldump -h$mysql_host -P$mysql_port -u$mysql_user -p$mysql_password -B test1&#xff08;数据库名称&#xff09;&#xff08;中间是有一个空格的&#xff0…

Windows系统下如何定时备份MySQL数据库

Windows系统下如何定时备份MySQL数据库 使用mysqldump备份sql文件 假设mysql环境 MySQL安装位置 D:\mysql\mysql-5.7.30-winx64需要备份的数据库名称 springMySQL数据库账号 rootMySQL数据库密码 123456数据库备份地址 D:/mysqlBackup/ 则脚本按照下面写法&#xff1a; echo of…

mysql设置定时备份

不管是什么类型的数据库&#xff0c;我们都需要定时的备份&#xff0c;以便在出问题时可以及时恢复&#xff0c;减少损失。sqlserver的备份很简单&#xff0c;sqlserver自带&#xff0c;这里主要给大家分享下mysql的自动备份如何设置。 1.工具&#xff1a;navicat2.数据库:mys…

【数据库】定时备份mysql数据库

目录 一、创建放备份的目录二、编写脚本三、创建软链接四、赋予该脚本可执行权限五、测试脚本是否能正常执行六、进入备份文件夹查看是否正常备份七、安装cron服务八、创建定时备份任务 一、创建放备份的目录 cd / 进入根目录 mkdir backup 创建备份…

Mysql数据库每天定时备份

1.先检查安装crontabs yum install crontabs 2.在home目录下指定路径新建文件夹 3.新建执行脚本,在里面写入命令 touch mysql_backup.sh shell脚本如下&#xff1a; #!/bin/bash #保存备份个数&#xff0c;备份14天数据 number14 #备份保存路径 backup_dir/home/tjgeo/bac…

Mysql定时备份

linux下如何实现mysql数据库每天定时自动备份 由于客户要求&#xff0c;需要将数据库进行每天定时自动备份&#xff0c;所以网上找了各种方式就行了测试&#xff0c;遇到很多坑&#xff0c;特此记录下来&#xff0c;步骤是东拼西凑的&#xff0c;虽然也是网上找的&#xff0c;…

Windows下 mysql定时备份

** 使用mysqldump进行数据库备份 ** mysql数据库自带备份命令mysqldump,可对数据库进行备份操作 最简单的备份是将数据库备份至本地&#xff0c;生成 **.sql文件 编写备份脚本文件 &#xff08;创建一个txt文件&#xff0c;写入批处理脚本&#xff0c;再将文件的后缀改为.ba…

MySQL定时备份数据库(全库备份)

MySQL定时备份数据库&#xff08;全库备份&#xff09; 一、MySQL数据备份 1.1、 mysqldump命令备份数据 在MySQL中提供了命令行导出数据库数据以及文件的一种方便的工具mysqldump,我们可以通过命令行直接实现数据库内容的导出dump,首先我们简单了解一下mysqldump命令用法: …

mysql定时自动备份数据库

我们都知道数据是无价&#xff0c;如果不对数据进行备份&#xff0c;相当是让数据在裸跑&#xff0c;一旦服务器出问题&#xff0c;只有哭的份了。下面将介绍mysql数据库的自动备份&#xff0c;大家可根据情况自行选择将备份数据存放在哪里。 第一种&#xff0c;数据跑在服务器…

windows系统mysql定时备份

一.介绍 本文章主要介绍了windows系统下如何创建mysql定时备份任务&#xff0c;目的&#xff1a;一是数据无价&#xff0c;一旦数据丢失&#xff0c;功亏一篑&#xff1b;而是将重复性的工作交给机器来做&#xff0c;省去人工处理成本。 二.创建bat任务脚本 1.新建txt文档 2.打…

MySQL 定时备份数据库(非常全)

一. mysqldump命令备份数据 在MySQL中提供了命令行导出数据库数据以及文件的一种方便的工具mysqldump,我们可以通过命令行直接实现数据库内容的导出dump,首先我们简单了解一下mysqldump命令用法: #MySQLdump常用 mysqldump -u root -p --databases 数据库1 数据库2 > xxx.s…

实战-MySQL定时增量备份(2)

阅读本文大约需要 9 分钟 实战-MySQL定时全量备份&#xff08;1&#xff09; 实战-MySQL定时增量备份&#xff08;2&#xff09; 实战-将MySQL备份上传到私有云(3) 概要 引言 增量备份 恢复增量备份 定时备份 引言 在产品上线之后&#xff0c;我们的数据是相当重要的&…

MySQL 数据库定时备份

1.编写BASH维护固定数量备份文件 在Linux中&#xff0c;使用vi或者vim编写脚本内容并命名为&#xff1a;mysql_dumps.sh #!/bin/bash #保存备份个数&#xff0c;备份31天数据 number31 #备份保存路径 backup_dir/root/mysqlbackup #日期 dddate %Y-%m-%d-%H-%M-%S #备份工具 …

Linux定时备份MySQL

Linux定时备份MySQL 1.备份脚本2.赋予脚本执行权限3.添加定时任务4. crontab定时任务表达式5. 常见问题6. linux软连接7.参考链接: 阅读本文您将了解到: 定时备份数据库linux定时任务crontab定时任务表达式shell脚本变量命名规则linux 软连接的使用vim使用技巧 1.备份脚本 用vi…

MySQL 如何定时备份数据库

目录 1.mysqldump命令备份数据 2.mysqldump常用操作示例 2.1. 备份全部数据库的数据和结构 2.2.备份全部数据库的结构&#xff08;加 -d 参数&#xff09; 2.3. 备份全部数据库的数据(加 -t 参数) 2.4.备份单个数据库的数据和结构(,数据库名mydb) 2.5. 备份单个数据库的…

MySQL 定时备份数据库(非常全),值得收藏!

在操作数据过程中&#xff0c;可能会导致数据错误&#xff0c;甚至数据库奔溃&#xff0c;而有效的定时备份能很好地保护数据库。本篇文章主要讲述了几种方法进行 MySQL 定时备份数据库。 一. mysqldump命令备份数据 在MySQL中提供了命令行导出数据库数据以及文件的一种方便的工…

mysql数据库定时备份

1 环境检查 1. 执行本手册前&#xff0c;请正确安装Mysql数据库&#xff0c;并知晓数据库用户名和密码&#xff1b; 2. 执行本手册前&#xff0c;请先确定Mysql数据库数据要储存的天数&#xff1b;默认30 2 批处理文件配置 当前步骤主要实现以下目标配置&#xff1a; 配置…

mysql实现定时备份

1、编写脚本xxx.bat echo off echo 设置MySql数据库的连接信息 set host127.0.0.1 set port3306 set userroot set pass123456 echo 设置要备份MySql数据库名称 set dbnameprojectmonitoring echo 获取当天的日期格式&#xff0c;例如&#xff1a;2022-12-13-14-30-40set back…

MySQL数据库定期自动备份(定时任务)

一、脚本备份&#xff1b; 1、新建一个backupDB.txt文件&#xff0c;然后通过重命名修改文件后缀为.bat&#xff0c;将 backupDB.bat 放置在 D:/mysql5.7目录下&#xff0c;文件内容如下&#xff1a; echo off set h%time:~0,2% set h%h: 0% set hhmiss%date:~0,4%%date:~5,2…