我正在尝试制作“ tik-tak-toe”程序,并且试图使其重复执行,因此我使用了while循环。我要求用户输入1表示是,输入2表示否。之后,我有一个scanf_s语句。 出于某种原因,当我输入yes并按Enter时,Visual Studio 2015会向我发出警告:
“ tick-tack-toe.exe中0x5D14B5F2(ucrtbased.dll)处未处理的异常:0xC0000005:访问冲突写入位置0x00000001。 当我按2至No时,此警告不会出现。
我使用调试器查找出了什么问题,然后发现这是scanf_s语句。 我试图使它成为常规的scanf语句,但是当我运行代码时却说代码失败并且错误是
“'scanf':此函数或变量可能不安全。请考虑使用scanf_s。要禁用弃用,请使用_CRT_SECURE_NO_WARNINGS。有关详细信息,请参见联机帮助。” 我遍历了互联网,尝试了所有发现的内容,但没有任何效果。 :(
int repeat = 1;
while(repeat == 1){
printf("do you want to play again \n 1.yes \n 2.no \n");
scanf_s("%d", repeat);
}
我希望我的代码在按1时可以重新开始,但它会出错。
答案 0 :(得分:0)
请仔细阅读这些函数的原型,特别是看如何传递参数:
提示:您以错误的方式传递“重复”。
也请注意:
“ 0x5D14B5F2处未处理的异常
这不是警告,更像是程序崩溃/致命错误。