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日

悬赏问题

  • ¥15 请问有会的吗,用MATLAB做
  • ¥15 phython如何实现以下功能?查找同一用户名的消费金额合并—
  • ¥15 ARIMA模型时间序列预测用pathon解决
  • ¥15 孟德尔随机化怎样画共定位分析图
  • ¥18 模拟电路问题解答有偿速度
  • ¥15 CST仿真别人的模型结果仿真结果S参数完全不对
  • ¥15 误删注册表文件致win10无法开启
  • ¥15 请问在阿里云服务器中怎么利用数据库制作网站
  • ¥60 ESP32怎么烧录自启动程序,怎么查看客户esp32板子上程序及烧录地址
  • ¥50 html2canvas超出滚动条不显示