vs2017上无法使用scanf()函数,但是提供了scanf_s()函数,在使用scanf_s()读取二维数组时遇到了以下问题
代码:
int main()
{
char a[10][5]; //定义一个二维数组
scanf_s(“%s",a[1]); //输入一个字符串到第二行
printf(”%s“,a[1]);
return 0;
}
上述代码语法上并没有什么问题,但是执行时报错。
解决方法
给scanf_s函数制定一个参数,告诉编译器预留多大的空间来存储字符串sizeof()或直接给定一个数字大小,够用就可以。
代码:
int main()
{
char a[10][5]; //定义一个二维数组
scanf_s(“%s",a[1],sizeof(a[0]); //输入一个字符串到第二行
printf(”%s“,a[1]);
return 0;
}
运行结果: