lll257016 2022-03-09 16:57 采纳率: 50%
浏览 34
已结题

if 语句被忽略了 运行不到我的目的

下文中的第一个if 语句怎么跑不出来,直接跳到了末尾的else

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
//输入密码确认
int main()
{
char get[20] = {0};
char get2[20] = {0};
int ch = 0;
printf("请输入您的六位数密码:\n");
scanf("%s", get);
printf("请再次确认您的六位数密码:\n");
scanf("%s", get2);
if (get == get2)
{
printf("请输入“Y”确认此次操作!\n");
ch = getchar();
if (ch == 'Y')
printf("确认成功!已完成操作!");
}
else
printf("您两次的密码不正确!请重新启动!");
return 0;
}

请输入您的六位数密码:

123456
请再次确认您的六位数密码:
123456
您两次的密码不正确!请重新启动!

改了数组大小[6] 发现更错了 报错 Run-Time Check Failure #2 - Stack around the variable ‘get’ was corrupted.
  • 写回答

4条回答 默认 最新

  • CSDN专家-link 2022-03-09 17:17
    关注

    修改如下,除了字符串比较处理修改外,在输入Y字符串要增加先fflush(stdin)清空输入缓冲区

    #define _CRT_SECURE_NO_WARNINGS
    #include<stdio.h>
    #include <string.h>
    //输入密码确认
    int main()
    {
    char get[20] = {0};
    char get2[20] = {0};
    int ch = 0;
    printf("请输入您的六位数密码:\n");
    scanf("%s", get);
    printf("请再次确认您的六位数密码:\n");
    scanf("%s", get2);
    if (strcmp(get,get2)==0)
    {
    printf("请输入“Y”确认此次操作!\n");
    fflush(stdin);
    ch = getchar();
    if (ch == 'Y')
    printf("确认成功!已完成操作!");
    }
    else
    printf("您两次的密码不正确!请重新启动!");
    return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 3月17日
  • 已采纳回答 3月9日
  • 创建了问题 3月9日

悬赏问题

  • ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角
  • ¥20 Java-Oj-桌布的计算
  • ¥15 powerbuilder中的datawindow数据整合到新的DataWindow
  • ¥20 有人知道这种图怎么画吗?
  • ¥15 pyqt6如何引用qrc文件加载里面的的资源
  • ¥15 安卓JNI项目使用lua上的问题
  • ¥20 RL+GNN解决人员排班问题时梯度消失
  • ¥60 要数控稳压电源测试数据
  • ¥15 能帮我写下这个编程吗
  • ¥15 ikuai客户端l2tp协议链接报终止15信号和无法将p.p.p6转换为我的l2tp线路