VS使用scanf函数报错解决方法
首先来看一段很简单的C语言代码
#include<stdio.h>
int main(void)
{
char s[10];
scanf("%s",s);
printf("%s",s);
return 0;
}
这段代码的作用就是输入一个字符串,再把这个字符串输出。在其他IDE(集成开发环境)上,是完全可以运行的,但是在Microsoft Visual Studio(美国微软公司开发的可视化编程开发软件)的系列软件上(从Microsoft Visual C++ 2005开始),Microsoft Visual Studio系列软件直接使用scanf函数会报错,但是也提供了一个叫scanf_s新格式化输入函数。
scanf_s函数
在调用scanf_s函数时,必须在可变参数表中提供一个数字来表明最多读取多少个字节的字符,另外很多额外带_s后缀的函数是为了让原版函数更安全,传入一个和参数有关的大小值,避免访问到不存在的元素。
所以上面那段代码在VS2019里要这样写:
#include<stdio.h>
int main()
{
char s[10];
scanf_s("%s",s,10);
printf("%s",s);
return 0;
}
scanf_s("%s", a,10);表示用户最多可以最多输入9个字符,这种情况程序可以正常编译运行,如果用户输入字符超过9个ÿ