如何使用Visual Studio 2019中编写C语言程序及注意的一些常见问题

首先:建立C语言程序项目

注意:在建立项目时将源文件的后缀由.cpp,改为.c
在这里插入图片描述

其次:scanf_s()前身——scanf()

注意:有的C语言教材里用的scanf(),其实在目前Visual Studio版本中已经弃用了,用scanf_s()函数代替了。不加_s程序会报错。

在这里插入图片描述


最后:0x7A13E63C (ucrtbased.dll)处(位于 XINTE-3.exe 中)引发的异常: 0xC0000005: 写

在这里插入图片描述

注意 出现报错的原因是scanf_s输入时没有加参数,这是一个安全问题,因为我们在用scanf输入字符串的时候,编译器不知道我们给它安排的空间有多大,所以只要我们不停地写,它就能够不停地输入,这会造成输入的数据过大导致数据溢出的隐患(即输入过多的数据放在超过数组空间大小的其他地方),这就会有数据丢失的风险。

    所以在vs2015之后,scanf因为这个安全问题被改成了scanf_s(这也是用scanf会报错的原因),从此之后,scanf_s在输入字符串的时候,是需要在数组地址后面再加一个参数作为限制输入大小的值。

解决方案:

提示:再加一个参数作为限制输入大小的值

scanf_s("%s", students[i].name, MAX_NAME_LENGTH);  // 其中MAX_NAME_LENGTH是自定义的字符串长度
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值