用vs2022,一输入字符就报错

img

img

img


用vs2022,用scanf输入字符就报错,来个大lao详细说一下原因和解决方法

scanf_s("%c",&mark,1);
scanf输入字符时,后面必须加个参数1才行。

微软很恶心的操作,
代码开头加上
#define _CRT_SECURE_NO_WARNING
这样就能用scanf了。

scanf_s()函数出于安全考虑,对%c %s输入格式,要求检查数组边界,因此相应的参数后面要提供缓存大小
详情参考
https://learn.microsoft.com/en-us/cpp/c-runtime-library/reference/scanf-s-scanf-s-l-wscanf-s-wscanf-s-l?view=msvc-170