mzbtdwd 发表于 2021-4-7 23:22

初学C++,简单用个cin&cout就整蒙圈了,求大神指点

我的代码是这样的:
#include <iostream>
using namespace std;
int func()
{
        int a;
        char u1[] = { "xxx" };
        char u2;
        cout << "请输入你的账号:\n";
        int i;
        for (i = 1; i <= 3; i++)
        {
                cin >> u2;
                if (u1 == u2)
                {
                        cout << "恭喜你登录成功!\n" << endl;
                        a = 1;
                }
                else
                {
                        if ((3 - i) >= 1)
                        {
                                cout << "账号输入错误,请重新输入;你还有" << 3 - i << "次机会输入\n";
                        }
                        else
                        {
                                cout << "登录失败,程序已结束\n" << endl;
                                a = 0;
                        }
                }
        }
        return a;
}

int main()
{
        func();
        return 0;
}
我运行结果是这样的,输入xxx按回车一直提示错误。。。,整蒙圈了,求大神指点

沉默的菜鸟 发表于 2021-4-7 23:27

C++中数组比较的“==”号比较的不是内容,而是数组首地址,你这两个数组是两个不同的(不是内容不同而是占用的空间位置不同)所以不相等

236A 发表于 2021-4-7 23:39

你要比较用string比较啊   数组不能比较你非要比较用strcmp这个函数

花开亦相惜_123 发表于 2021-4-7 23:39

你比较的是数组0号位置的内存地址,肯定是不一样的,要比较内容不能这样比较

mzbtdwd 发表于 2021-4-7 23:42

沉默的菜鸟 发表于 2021-4-7 23:27
C++中数组比较的“==”号比较的不是内容,而是数组首地址,你这两个数组是两个不同的(不是内容不同而是占 ...

多谢大神指点,已调试成功,你的一句话解决了我一晚上苦思未果的问题,看来大神果然名不虚传{:1_921:},:lol今晚终于可以睡个好觉了,十分感谢!~

mzbtdwd 发表于 2021-4-7 23:57

236A 发表于 2021-4-7 23:39
你要比较用string比较啊   数组不能比较你非要比较用strcmp这个函数

多少大神指点,我这样改下竟然也成功了,哈哈,太神奇了

wuti90 发表于 2021-4-8 08:17

aaabbbcc123 发表于 2021-4-8 08:17

xiexiefenxianga

Eaglecad 发表于 2021-4-8 08:30

mzbtdwd 发表于 2021-4-7 23:57
多少大神指点,我这样改下竟然也成功了,哈哈,太神奇了

这种写法没出异常,你算是烧高香了?下标总共20,即0-19。如

a952135763 发表于 2021-4-8 08:47

所有引用型的都是比较地址把   除非被重载了符号
页: [1] 2
查看完整版本: 初学C++,简单用个cin&cout就整蒙圈了,求大神指点