鱼C论坛

 找回密码
 立即注册
查看: 2816|回复: 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 就没问题:
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include<stdio.h>
  3. #include<stdlib.h>


  4. int main()
  5. {
  6.     char a, b, c, g = 'W', h = 'R', j = 'C';//前三位字符密码
  7.     int d, e, f, D = 1, E = 9, F = 9, q, w, r, G, H, J, K;//后三位整型密码
  8.     printf("please input password:\n");
  9.     scanf("%c,%c,%c,%d,%d,%d", &a, &b, &c, &d, &e, &f);
  10.     G = g == a;//如果g==a则G=1,否则为0,以下同理
  11.     H = h == b;
  12.     J = j == c;
  13.     q = D == d;
  14.     w = E == e;
  15.     r = F == f;
  16.     K = G + H + J + q + w + r;//如果输入正确则K=6
  17.     if (K == 6)//如果K=6执行下面括号的语句
  18.     {
  19.         printf("please input long,wide:\n");
  20.         getchar();
  21.         scanf("%d,%d", &d, &e);
  22.         f = d + e;
  23.         printf("=%d\n", f);
  24.     }
  25.     else while (getchar());
  26.     system("pause");
  27.     return 0;
  28. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-7-2 09:13:26 | 显示全部楼层
???
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

你好,就是想设计一个有密码的程序,如果密码输入不对就循环回车,正确的话就运行if里面的语句;能指点下吗,谢谢了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

while(getchar()) 又是什么鬼?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

想让就算键盘输入了内容程序也不会被关
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

如果密码输入不对就循环回车
又是什么?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

就是想一直按回车的话程序也不会关,一直可以键入内容;可以帮忙指点下这个程序的设计吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

你的程序有什么问题?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

无法正常执行,输入后会卡住一会,然后没有什么反应
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

输入内容(密码)后
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

输入错误不就是应该卡住吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

输入正确的密码情况也是一样的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-2 13:36:39 | 显示全部楼层    本楼为最佳答案   
xiaoyurenwen 发表于 2020-7-2 12:04
无法正常执行,输入后会卡住一会,然后没有什么反应

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


  4. int main()
  5. {
  6.     char a, b, c, g = 'W', h = 'R', j = 'C';//前三位字符密码
  7.     int d, e, f, D = 1, E = 9, F = 9, q, w, r, G, H, J, K;//后三位整型密码
  8.     printf("please input password:\n");
  9.     scanf("%c,%c,%c,%d,%d,%d", &a, &b, &c, &d, &e, &f);
  10.     G = g == a;//如果g==a则G=1,否则为0,以下同理
  11.     H = h == b;
  12.     J = j == c;
  13.     q = D == d;
  14.     w = E == e;
  15.     r = F == f;
  16.     K = G + H + J + q + w + r;//如果输入正确则K=6
  17.     if (K == 6)//如果K=6执行下面括号的语句
  18.     {
  19.         printf("please input long,wide:\n");
  20.         getchar();
  21.         scanf("%d,%d", &d, &e);
  22.         f = d + e;
  23.         printf("=%d\n", f);
  24.     }
  25.     else while (getchar());
  26.     system("pause");
  27.     return 0;
  28. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

谢谢你,我改了好久都没有成功,刚刚试了下确实就行了
小甲鱼最新课程 -> https://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));
也可以运行正常了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

不对,刚刚改的是下面那个scanf_s,第一个sanf_s就算改了也会出现和原来一样的错误,必须要用scanf才能正常
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-29 16:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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