根据这本书:How to C Programming - Eighth Edition (by Deitel brothers)
,此代码读取单词“ Hello”:
#define SIZE 20
int main()
{
char MyStr[SIZE];
printf("Enter your word: ");
scanf("%19s", MyStr);
}
此图片来自Sixth Edition online:
但是当我这样做时:
int main()
{
char MyStr[20];
printf("Enter your word: ");
scanf_s("%19s", MyStr);
}
我收到访问冲突错误:
我在做什么错了?
答案 0 :(得分:2)
scanf和scanf_s之间有区别。后者要求指定长度。因此,您的代码应更改为:
Evaluate('FORM.r_' & i)
或
int main()
{
char MyStr[20];
printf("Enter your word: ");
scanf_s("%19s", MyStr, sizeof(MyStr));
}
答案 1 :(得分:0)
将_CRT_SECURE_NO_WARNINGS添加到链接器选项,并且如果您不想使用安全的方法,它应该允许您使用scanf和其他“不安全”的方法。默认情况下,Visual Studio更喜欢使用安全的