VC++6.0转VS2017出现的问题
学校一直在用VC++6.0教C语言,可是大部分企业都用 VS 写C代码,于是我就转用VS了,用的是VS2017,然后我就把我之前做的一些程序移到VS上面打开然后就出现了一些问题,我转移的一个有用户登录的学生成绩管理程序,开始输入账号密码登录,然后密码输入显示星号,在VC++6.0上运行没有任何问题,但是用VS2017运行,输入密码的时候输入一个字符显示两个星号,输完还显示错误,回退也用不了,连个getch()也不好使了
不准备用VC了,改用VS2017了,麻烦各位大佬看一下问题出在哪,登录模块代码如下:
程序代码:
void load() { int i = 0; char a[16], b[16]; char username[] = "f123"; //预先设定好账户名和密码 char password[] = "f321"; for (; i <= 2; i++) { printf("\t\t\t\t 账户登录\n\t\t\t注:默认登录账号 f123 , 密码 f321 ,错误三次退出程序\n\n"); printf("\t\t\tusername:"); gets_s(a,16); printf("\t\t\tpassword:"); for (int s = 0;; s++) { b[s] = _getch(); if (b[s] == '\r') // 输入的为空格时,自动转为'/0'结束输入 { b[s] = '\0'; break; } else if (b[s] == '\b') { printf("\b \b"); // 输入的为退格键时,自动往前一格用空格覆盖 s = s - 2; // 删除字符 continue; } printf("*"); } if (strcmp(a, username) == 0 && strcmp(b, password) == 0) { printf("\n\t\t\t----欢迎登录----\n\n\t\t\t按任意键进入!\n"); _getch(); return; } else { printf("\n\t\t\t用户名或密码错误!\n\n\t\t\t按任意键重新输入!\n"); _getch(); system("cls"); } } printf("\t\t\t输入次数超过限制,账户锁定\n"); exit(1); }