| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 740 人关注过本帖
标题:结构体的问题
只看楼主 加入收藏
qq1274371820
Rank: 1
等 级:新手上路
帖 子:149
专家分:0
注 册:2013-11-24
结帖率:75.86%
收藏
已结贴  问题点数:15 回复次数:12 
结构体的问题

struct zonghe
{
   string name1;
   string name2;
};
void func1()
{
   zonghe mes;
   cin>>mes.name1;
}
void func2()
{
   zonghe mes;
   cin>>mes.name2;
}
           请问mes.name1是否等于mes.name2    ?
           
搜索更多相关主题的帖子: 结构体 
2014-04-15 14:38
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
这是什么代码?

总有那身价贱的人给作业贴回复完整的代码
2014-04-15 14:43
ying8501
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:6
帖 子:1092
专家分:1446
注 册:2008-11-24
收藏
得分:0 
struct zonghe
{
   string name1;
   string name2;
};

void func1()
{
   zonghe mes;
   cin>>mes.name1;
}
void func2()
{
   zonghe mes;
   cin>>mes.name2;
}
上边的mes.name和mes.name2 在不同的函数中,她们没有任何关系,况且 你输入的值相同吗?           
2014-04-15 17:20
qq1274371820
Rank: 1
等 级:新手上路
帖 子:149
专家分:0
注 册:2013-11-24
收藏
得分:0 


                输入的值不同。。。好吧,那如果要将mes.name1 的值赋值给mes.name2,要怎么做呢?

自定义人生。。。
2014-04-15 18:52
qq1274371820
Rank: 1
等 级:新手上路
帖 子:149
专家分:0
注 册:2013-11-24
收藏
得分:0 


           或者是判断mes.name1是否等于mes.name2,该怎么做呢?

自定义人生。。。
2014-04-15 21:02
qq1274371820
Rank: 1
等 级:新手上路
帖 子:149
专家分:0
注 册:2013-11-24
收藏
得分:0 

           就是这个程序,登录系统源代码,大家帮我看看是哪里出了问题。不管main函数里的。。。

#include"stdafx.h"
#include"iostream"
#include"string"
using namespace std;
extern int main1();
int denglu();
void zhuce();
void func2();
struct zonghe
{
    string name1;
    string name2;
    string mima1;
    string mima2;
};
void choose()
{
    cout<<"请输入选项:";
    int x;
    cin>>x;
    if(x==1)
        denglu();
    if(x==2)
        zhuce();
}
void first()
{
    cout<<"**********************"<<endl;
    cout<<"       1.登录         "<<endl;
    cout<<"       2.注册         "<<endl;
    cout<<"**********************"<<endl;
}
void zhuce()
{
    zonghe mes;
        cout<<"请输入姓名:";
        cin>>mes.name1;
        cout<<endl;
        cout<<"请输入密码:";
        string b;
        cin>>mes.mima1;
        cout<<endl;
        cout<<"请再次输入密码:";
        cin>>b;
        cout<<endl;
        if(mes.mima1==b)
        {
            cout<<"请牢记你的密码!"<<endl;
        }
        else
        {
            cout<<"两次输入的密码不一致,请重新输入"<<endl;
            zhuce();
        }
}
int denglu()
{
    zonghe mes;
    cout<<"请输入姓名:";
    cin>>mes.name2;
    cout<<"请输入密码:";
    cin>>mes.mima2;
    int x,y;
    x=mes.(mes.name2);
    y=mes.(mes.mima2);
    if(x==0&&y==0)
    {
        return 0;
    }
    else
    {
        cout<<"输入有误,请重新输入!";
        cout<<endl;
        denglu();
    }
}
void func1()
{
    first();
    choose();
    first();
    choose();
}
void main()
{
    func1();
    while(1)
    {
        if(main1()==0)
            break;  
        else
            continue;
    }
   
}

自定义人生。。。
2014-04-16 11:03
ying8501
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:6
帖 子:1092
专家分:1446
注 册:2008-11-24
收藏
得分:0 
#include"stdafx.h"
#include"iostream"
#include"string"
using namespace std;
extern int main1();
int denglu();
void zhuce();
void func2();
struct zonghe
{
    string name1;
    string name2;
    string mima1;
    string mima2;
};
void choose()
{
    cout<<"请输入选项:";
    int x;
    cin>>x;
    if(x==1)
        denglu();
    if(x==2)
        zhuce();
}
void first()
{
    cout<<"**********************"<<endl;
    cout<<"       1.登录         "<<endl;
    cout<<"       2.注册         "<<endl;
    cout<<"**********************"<<endl;
}
void zhuce()
{
  struct  zonghe mes;    //两个函数中所定义的变量都是局部变量,只在所在的函数内有效,其他的函数中即使名字相同的变量,也互不干扰。更不可能相互访问比较了。
        cout<<"请输入姓名:";//解决方法:要么定义成全局变量,要么在主函数中定义,传地址入其他函数,或者用引用
        cin>>mes.name1;
        cout<<endl;
        cout<<"请输入密码:";
        string b;
        cin>>mes.mima1;
        cout<<endl;
        cout<<"请再次输入密码:";
        cin>>b;
        cout<<endl;
        if(mes.mima1==b)
        {
            cout<<"请牢记你的密码!"<<endl;
        }
        else
        {
            cout<<"两次输入的密码不一致,请重新输入"<<endl;
            zhuce();
        }
}
int denglu()
{
    struct zonghe mes;  \\局部变量----只在函数内部有效
    cout<<"请输入姓名:";
    cin>>mes.name2;
    cout<<"请输入密码:";
    cin>>mes.mima2;
    int x,y;
    x=mes.(mes.name2);
    y=mes.(mes.mima2);
    if(x==0&&y==0)
    {
        return 0;
    }
    else
    {
        cout<<"输入有误,请重新输入!";
        cout<<endl;
        denglu();
    }
}
void func1()
{
    first();
    choose();
    first();
    choose();
}
void main()
{
    func1();
    while(1)
    {
        if(main1()==0)
            break;  
        else
            continue;
    }
   
}
2014-04-16 12:20
qq1274371820
Rank: 1
等 级:新手上路
帖 子:149
专家分:0
注 册:2013-11-24
收藏
得分:0 

              试过了,每次都会出现“输入有误,请重新输入!”这一句

              也就是说,x,y不管怎么都 是 不 为 0 的。也就是mes.name1并没有与mes.name2比较,mes.mima1也没有与mes.mima2比较

[ 本帖最后由 qq1274371820 于 2014-4-16 18:50 编辑 ]

自定义人生。。。
2014-04-16 18:40
ying8501
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:6
帖 子:1092
专家分:1446
注 册:2008-11-24
收藏
得分:10 
#include"stdafx.h"
#include"iostream"
#include"string"
using namespace std;
extern int main1();
int denglu();
void zhuce();
void func2();
struct zonghe
{
    string name1;
    string name2;
    string mima1;
    string mima2;
};
struct  zonghe mes;        //定义成mes全局变量,去掉下面几个函数中相应的局部变量
void choose()
{
    cout<<"请输入选项:";
    int x;
    cin>>x;
    if(x==1)
        denglu();
    if(x==2)
        zhuce();
}
void first()
{
    cout<<"**********************"<<endl;
    cout<<"       1.登录         "<<endl;
    cout<<"       2.注册         "<<endl;
    cout<<"**********************"<<endl;
}
void zhuce()
{   
        cout<<"请输入姓名:";
        cin>>mes.name1;
        cout<<endl;
        cout<<"请输入密码:";
        string b;
        cin>>mes.mima1;
        cout<<endl;
        cout<<"请再次输入密码:";
        cin>>b;
        cout<<endl;
        if(mes.mima1==b)
        {
            cout<<"请牢记你的密码!"<<endl;
        }
        else
        {
            cout<<"两次输入的密码不一致,请重新输入"<<endl;
            zhuce();
        }
}
int denglu()
{
    cout<<"请输入姓名:";
    cin>>mes.name2;
    cout<<"请输入密码:";
    cin>>mes.mima2;
    int x,y;
    x=mes.(mes.name2);
    y=mes.(mes.mima2);
    if(x==0&&y==0)
    {
        return 0;
    }
    else
    {
        cout<<"输入有误,请重新输入!";
        cout<<endl;
        denglu();
    }
}
void func1()
{
    first();
    choose();
    first();
    choose();
}
void main()
{
    func1();
    while(1)
    {
        if(main1()==0)
            break;  
        else
            continue;
    }
   
}
2014-04-16 19:57
wyk565542030
Rank: 2
等 级:论坛游民
帖 子:8
专家分:55
注 册:2012-3-30
收藏
得分:5 
虽然结构体类型一样,但是他们并没有在指向同一个结构体的物理空间。
楼上的那样就可以

typedef struct zonghe
{
    string name1;
    string name2;
    string mima1;
    string mima2;
};
typedef struct zonghe mes;
作为全局变量。
2014-04-16 23:28
快速回复:结构体的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020467 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved