用c语言实现计算n的阶乘,如何解决VS2017的scanf函数报错问题

VS2017
C代码如下:

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>

int main () {
	int n;
	printf("请输入n:");
	scanf("%d", &n);   //利用scanf函数
	int b = 1;
	for (int a = 1; a <= n; a++)  
		b *= a;    //b *= a是b = b*a 的简写
	printf("n的阶乘= %d\n",b);
	system("pause");
}

上面这一段代码不输入第一行时,就会出现下图所示的结果:
在这里插入图片描述
我们查看一下细节:
在这里插入图片描述
VS建议
1.使用scanf_s 函数代替;
2.To disable deprecation, use _CRT_SECURE_NO_WARNINGS
以上两种不推荐使用第一种方法,
第一,scanf_s 函数用法跟scanf 函数用法不一样
第二,其他版本的的开发工具中没有scanf_s 函数

解决方法:

  • 方法一、(系统推荐2.)在头文件之前添加一行代码,该宏必须放在文件的最上方,如果放在其他位置可能会不生效。(如下)
#define _CRT_SECURE_NO_WARNINGS

注意使用该方法时,_CRT_SECURE_NO_WARNINGS不要一个一个敲,复制粘贴!(复制粘贴一定要在“输出”窗口复制,“错误列表”窗口不能选中复制)不然敲错就很尴尬,当然,你说你能敲对?那敲吧,我也拦不住你~

  • 方法二、还是在头文件之前添加一行代码(如下)
#pragma warning (distable:4996)
  • 方法三、这是一个一劳永逸的方法。
    通过如下设置,避免我们每次写代码都要添加一行代码:
    打开VS->项目->属性-> C/C++ -> 预处理器 -> 预处理器定义 ->编辑 -> 加入_CRT_SECURE_NO_WARNINGS ->确定

搞定咯~

看,没有了上面展示的第一行代码,程序也成功运行出来啦~
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值