xiaoyurenwen 发表于 2020-7-2 09:10:14

vs2019,程序运行后输入正确密码后自行退出,求指点

int main()
{
        char a, b, c, g = 'W', h = 'R',j = 'C';//前三位字符密码
        int d, e, f,D=1,E=9,F=9,q,w,r,G,H,J,K;//后三位整型密码
        printf("please input password:\n");
        scanf_s("%c,%c,%c,%d,%d,%d", &a, &b, &c, &d, &e, &f);
        G = g == a;//如果g==a则G=1,否则为0,以下同理
        H = h == b;
        J = j == c;
        q = D == d;
        w = E == e;
        r = F == f;
        K = G + H + J + q + w + r;//如果输入正确则K=6
        if (K==6)//如果K=6执行下面括号的语句
        {
                printf("please input long,wide:\n");
                getchar();
                scanf_s("%d,%d", &d, &e);
                f = d + e;
                printf("=%d\n", f);
        }
        else while (getchar());
        system("pause");
        return 0;
}

永恒的蓝色梦想 发表于 2020-7-2 09:13:26

???

xiaoyurenwen 发表于 2020-7-2 09:17:25

永恒的蓝色梦想 发表于 2020-7-2 09:13
???

你好,就是想设计一个有密码的程序,如果密码输入不对就循环回车,正确的话就运行if里面的语句;能指点下吗,谢谢了

永恒的蓝色梦想 发表于 2020-7-2 09:19:58

xiaoyurenwen 发表于 2020-7-2 09:17
你好,就是想设计一个有密码的程序,如果密码输入不对就循环回车,正确的话就运行if里面的语句;能指点下 ...

如果密码输入不对就循环回车???

xiaoyurenwen 发表于 2020-7-2 09:44:01

永恒的蓝色梦想 发表于 2020-7-2 09:19
???

就是类似于
#include<stdio.h>

int main()
{
char a='k',b,c;
scanf_s("%c",b);
c=a==b;
if(c==1)
{
printf("ok");
}
else while(getchar());
return 0;
}

永恒的蓝色梦想 发表于 2020-7-2 09:48:42

xiaoyurenwen 发表于 2020-7-2 09:44
就是类似于
#include



while(getchar()) 又是什么鬼?

xiaoyurenwen 发表于 2020-7-2 09:59:43

永恒的蓝色梦想 发表于 2020-7-2 09:48
while(getchar()) 又是什么鬼?

想让就算键盘输入了内容程序也不会被关

永恒的蓝色梦想 发表于 2020-7-2 10:01:31

xiaoyurenwen 发表于 2020-7-2 09:59
想让就算键盘输入了内容程序也不会被关

那如果密码输入不对就循环回车又是什么?

xiaoyurenwen 发表于 2020-7-2 10:08:07

永恒的蓝色梦想 发表于 2020-7-2 10:01
那又是什么?

就是想一直按回车的话程序也不会关,一直可以键入内容;可以帮忙指点下这个程序的设计吗{:5_105:}

永恒的蓝色梦想 发表于 2020-7-2 10:25:01

xiaoyurenwen 发表于 2020-7-2 10:08
就是想一直按回车的话程序也不会关,一直可以键入内容;可以帮忙指点下这个程序的设计吗

你的程序有什么问题?

xiaoyurenwen 发表于 2020-7-2 12:04:42

永恒的蓝色梦想 发表于 2020-7-2 10:25
你的程序有什么问题?

无法正常执行,输入后会卡住一会,然后没有什么反应

xiaoyurenwen 发表于 2020-7-2 12:06:17

永恒的蓝色梦想 发表于 2020-7-2 10:25
你的程序有什么问题?

输入内容(密码)后

永恒的蓝色梦想 发表于 2020-7-2 12:06:35

xiaoyurenwen 发表于 2020-7-2 12:04
无法正常执行,输入后会卡住一会,然后没有什么反应

输入错误不就是应该卡住吗?

xiaoyurenwen 发表于 2020-7-2 12:08:30

永恒的蓝色梦想 发表于 2020-7-2 12:06
输入错误不就是应该卡住吗?

输入正确的密码情况也是一样的{:5_100:}

永恒的蓝色梦想 发表于 2020-7-2 13:36:39

xiaoyurenwen 发表于 2020-7-2 12:04
无法正常执行,输入后会卡住一会,然后没有什么反应

……scanf_s 搞的鬼,用 scanf 就没问题:#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>


int main()
{
    char a, b, c, g = 'W', h = 'R', j = 'C';//前三位字符密码
    int d, e, f, D = 1, E = 9, F = 9, q, w, r, G, H, J, K;//后三位整型密码
    printf("please input password:\n");
    scanf("%c,%c,%c,%d,%d,%d", &a, &b, &c, &d, &e, &f);
    G = g == a;//如果g==a则G=1,否则为0,以下同理
    H = h == b;
    J = j == c;
    q = D == d;
    w = E == e;
    r = F == f;
    K = G + H + J + q + w + r;//如果输入正确则K=6
    if (K == 6)//如果K=6执行下面括号的语句
    {
      printf("please input long,wide:\n");
      getchar();
      scanf("%d,%d", &d, &e);
      f = d + e;
      printf("=%d\n", f);
    }
    else while (getchar());
    system("pause");
    return 0;
}

xiaoyurenwen 发表于 2020-7-2 16:14:11

永恒的蓝色梦想 发表于 2020-7-2 13:36
……scanf_s 搞的鬼,用 scanf 就没问题:

谢谢你,我改了好久都没有成功,刚刚试了下确实就行了

xiaoyurenwen 发表于 2020-7-2 16:24:01

永恒的蓝色梦想 发表于 2020-7-2 13:36
……scanf_s 搞的鬼,用 scanf 就没问题:

刚刚查了下,如果要用scanf_s的话,后面还要对赋值的量再次声明;
我刚刚又把原来的改成scanf_s("%d,%d", &d, &e,sizeof(char),sizeof(char));
也可以运行正常了

xiaoyurenwen 发表于 2020-7-2 16:33:36

永恒的蓝色梦想 发表于 2020-7-2 13:36
……scanf_s 搞的鬼,用 scanf 就没问题:

不对,刚刚改的是下面那个scanf_s,第一个sanf_s就算改了也会出现和原来一样的错误,必须要用scanf才能正常
页: [1]
查看完整版本: vs2019,程序运行后输入正确密码后自行退出,求指点