赞
踩
环境:window10,vs2019
因为再vs中许多的c库函数都有一定的安全隐患,特别是 错误4996 中,
1.我们可以再源文件(就是.c文件)头部直接输入(注意后面不要加;)
#pragma warning(disable :4996)
2.主要是介绍
再我们用 scanf_s 输入一个字符串:
-
-
- char a[10];
-
- scanf_s("%s",a,9);
-
- printf("键盘上输入的字符串是:%s\n",a);
-
后面的10,你可以理解为你最多输入(10-1)个字符串,实际上后面还包含的结束符/0 实际占用空间为10个。如果多输出就会导致内存溢出就会出现0xC0000005报错。
导致就算是断点调试也被卡住了(学艺不精)
后面不断尝试,发现是因为我在键盘输入有问题,在这段代码中我写的是%d %s %f %f %f,中间是空格,那就要在键盘上面也是空格间隔开,若你%d,%s ,%f, %f, %f
那么你就要在键盘输入也是用,隔开才行,不然就可能会出现0xC0000005报错。
scanf_s("%d %s %f %f %f", &stu[i].num, stu[i].name, 5, &stu[i].score[0], &stu[i].score[1], &stu[i].score[2]);
3.介绍一个实在不会在键盘上面输入的蠢而又万能的方法:
那就是合法输入你的字符串或数字或者其他后每一个都用(enter)确定下来,有点小麻烦,但是很有用。
4.另外scanf_s中我们需要注意%s输入时,后面的对应的参数不需要写&这个符号,就如同我上面那个stu[i].name,但是需要说明多少个字符串。
(暂时想到就这么多,纯写给刚刚进入c的小白看的)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。