标题:VC++6.0转VS2017出现的问题
只看楼主
_无可
Rank: 2
等 级:论坛游民
帖 子:6
专家分:10
注 册:2018-7-10
 问题点数:0 回复次数:1 
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);
}
搜索更多相关主题的帖子: VC++6.0 VS2017 输入 密码 printf 
2018-07-10 19:27
_无可
Rank: 2
等 级:论坛游民
帖 子:6
专家分:10
注 册:2018-7-10
得分:0 
找到问题了,微软自定义的函数,getch()要改成getwch()
收到的鲜花
  • 静夜思2018-07-11 15:58 送鲜花  5朵   附言:赞分享精神
2018-07-11 15:30



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-488506-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.066415 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved