1、Visual Studio2019用法
- 首次使用VisualStudio2019编写C语言代码程序运行非常快,导致控制台窗口一闪而逝,设置这里:
- ①选中程序右键选择属性
- ②选择如下:链接器-->系统-->子系统:控制台
- 快捷键Fn+F10会出现如下箭头:
- 说明main函数是程序的入口
- Fn+F10按一次程序向下执行一行
2、#define _CRT_SECURE_NO_WARNINGS 1的作用
当我们的程序不加这一行代码时:
//#define _CRT_SECURE_NO_WARNINGS 1 //让警告失效
int main()
{
int num1 = 0;
int num2 = 0;
int sum = 0;
printf("请输入两个数字:>");
scanf("%d%d", &num1, &num2);
//scanf
//strcpy
//strlen
//strcat
//标准库函数是不安全的
sum = num1 + num2;
printf("num1+ num2 = %d\n", sum);
return 0;
}
产生如下警告:
D:\dev\c\84\test_4_17\test.c(46,2): error C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
翻译为:
错误代号:C4996:'scanf':这个函数或变量可能不安全。考虑使用scanf_s替换。让描述失效,使用 _CRT_SECURE_NO_WARNINGS
原因是:
scanf函数是C语言提供的,scanf_s函数不是标准C语言提供的,是VS编译器提供的。不推荐使用scanf_s函数代替scanf函数。若使用scanf_s函数,那代码只有VS编译器才能识别出来。(没了跨平台、可移植性)
注意:
#define _CRT_SECURE_NO_WARNINGS 1 需要放在源代码的第一行
如何在每次新建源文件时自动添加这一行代码?
在newc++ file.cpp中添加 #define _CRT_SECURE_NO_WARNINGS 1 即可。
3、scanf返回值被忽略的问题
问题原因:
在ANSI C中只有scanf(),没有scanf_s(),但是scanf()在读取时不检查边界,所以可能会造成内存泄漏。于是Microsoft公司在VS编译器中提供了scanf_s(),如果想继续使用scanf这个不安全的函数,可以通过以下方法解决。
方法①:
把scanf改成:scanf_s
这是VS编译器特有,既然觉得scanf()不安全,那它就自己定义了一个scanf_s()。
方法②:
编译器错误提示的原因是因为VS中的SDL检查,只需要找到它并关闭就可以了。
关闭步骤:右键“项目文件” —— “属性” —— “配置属性” ——“C/C++”——“常规”——“SDL检查”改为“否”即可,如图所示
改为否后,再次编译就没问题了。
方法③:
在C语言程序开头添加代码:#pragma warning(disable:4996) //全部关掉
(或者)
在C语言程序开头添加代码:#pragma warning(once:4996) //仅显示一个
方法④:
在C语言程序开头添加代码:#define _CRT_SECURE_NO_WARNINGS 1
//忽略安全检测
每次都要加这么一串代码的话是不是感觉有点费力?
其实不用那么麻烦,我们只需要在VS中加入 _CRT_SECURE_NO_WARNINGS 这个宏就可以了,具体操作如下图所示:
4、在github克隆仓库到本地报错
Git报错: Failed to connect to github.com port 443 解决方案
两种情况:
第一种情况自己有vpn,网页可以打开github。说明命令行在拉取/推送代码时并没有使用vpn进行代理
第二种情况没有vpn,这时可以去某些网站上找一些代理ip+port
解决办法:配置http代理Windows、Linux、Mac OS 中 git 命令相同:
配置socks5代理
git config --global http.proxy socks5 127.0.0.1:7890
git config --global https.proxy socks5 127.0.0.1:7890
配置http代理
git config --global http.proxy 127.0.0.1:7890
git config --global https.proxy 127.0.0.1:7890
注意:
命令中的主机号(127.0.0.1)是使用的代理的主机号(自己电脑有vpn那么本机可看做访问github的代理主机),即填入127.0.0.1即可,否则填入代理主机 ip(就是网上找的那个ip)
命令中的端口号(7890)为代理软件(代理软件不显示端口的话,就去Windows中的代理服务器设置中查看)或代理主机的监听IP,可以从代理服务器配置中获得,否则填入网上找的那个端口port
socks5和http两种协议由使用的代理软件决定,不同软件对这两种协议的支持有差异,如果不确定可以都尝试一下
主机号和端口号可在代理的位置查看(自己有vpn的需要查看)
查看代理命令
git config --global --get http.proxy
git config --global --get https.proxy
取消代理命令
有时上传文件至github中也会出现以下命令:
Failed to connect to github.com port 443。
这时就需要我们取消代理命令
git config --global --unset http.proxy
git config --global --unset https.proxy