鱼C论坛

 找回密码
 立即注册
查看: 2604|回复: 17

[已解决]vs2019,程序运行后输入正确密码后自行退出,求指点

[复制链接]
发表于 2020-7-2 09:10:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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 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;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-7-2 09:13:26 | 显示全部楼层
???
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-7-2 09:17:25 | 显示全部楼层

你好,就是想设计一个有密码的程序,如果密码输入不对就循环回车,正确的话就运行if里面的语句;能指点下吗,谢谢了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-2 09:19:58 | 显示全部楼层
xiaoyurenwen 发表于 2020-7-2 09:17
你好,就是想设计一个有密码的程序,如果密码输入不对就循环回车,正确的话就运行if里面的语句;能指点下 ...
如果密码输入不对就循环回车
???
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-2 09:44:01 | 显示全部楼层

就是类似于
#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;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-2 09:48:42 | 显示全部楼层
xiaoyurenwen 发表于 2020-7-2 09:44
就是类似于
#include

while(getchar()) 又是什么鬼?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-2 09:59:43 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-7-2 09:48
while(getchar()) 又是什么鬼?

想让就算键盘输入了内容程序也不会被关
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-2 10:01:31 | 显示全部楼层
xiaoyurenwen 发表于 2020-7-2 09:59
想让就算键盘输入了内容程序也不会被关

如果密码输入不对就循环回车
又是什么?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-2 10:08:07 | 显示全部楼层

就是想一直按回车的话程序也不会关,一直可以键入内容;可以帮忙指点下这个程序的设计吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

你的程序有什么问题?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-2 12:04:42 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-7-2 10:25
你的程序有什么问题?

无法正常执行,输入后会卡住一会,然后没有什么反应
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-2 12:06:17 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-7-2 10:25
你的程序有什么问题?

输入内容(密码)后
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-2 12:06:35 | 显示全部楼层
xiaoyurenwen 发表于 2020-7-2 12:04
无法正常执行,输入后会卡住一会,然后没有什么反应

输入错误不就是应该卡住吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-2 12:08:30 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-7-2 12:06
输入错误不就是应该卡住吗?

输入正确的密码情况也是一样的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-2 16:14:11 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-7-2 13:36
……scanf_s 搞的鬼,用 scanf 就没问题:

谢谢你,我改了好久都没有成功,刚刚试了下确实就行了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 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));
也可以运行正常了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-2 16:33:36 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-7-2 13:36
……scanf_s 搞的鬼,用 scanf 就没问题:

不对,刚刚改的是下面那个scanf_s,第一个sanf_s就算改了也会出现和原来一样的错误,必须要用scanf才能正常
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-11 14:15

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表