在高版本中,scanf认为是不安全的,有两种解决方法:
(1)把scanf改成scanf_s
(2)在文件的第一行添加如下代码,即可使用scanf
#define _CRT_SECURE_NO_WARNINGS 1
输入回车结束的方法(修改了你的代码的前半部分,如下):
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
char a[16];
//...
int i, j;
char s;
printf("请设置密码:\n");
for (i = 0; i<16; i++)
{
a[i] = getchar();
if (a[i] == '\n')
{
a[i] = 0;
break;
}
}
//....
return 0;
}
scanf改成scanf_s
char s你都没初始化,for循环结束条件却判断s != '\n'