| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 582 人关注过本帖
标题:结构成员的读取问题
只看楼主 加入收藏
caochuan2000
Rank: 2
等 级:论坛游民
帖 子:66
专家分:35
注 册:2009-4-11
结帖率:76.47%
收藏
 问题点数:0 回复次数:9 
结构成员的读取问题
帮忙看下我的程序哪有问题:
#include <iostream>
#include <string>
int main()
{
    using namespace std;
    struct car
    {
        string mader;
        int year;
    };
    car *ps=new car;
    int number;
    cout<<"How many cars do you wish to catalog:";
    cin>>number;
    for(int i=0;i<number;i++)
    {
        cout<<"\nCar #"<<i<<":"<<endl;
        cout<<"Please enter the make:";
        cin.get(*(ps+i).mader);
        cout<<"please enter the year made:";
        cin>>*(ps+i).year;
    }
    cout<<"Here is your collection:"<<endl;
    for(int i=0;i<number;i++)
        cout<<*(p+i).year cout<< *(p+i).mader<<endl;
}

编译出现:
error C2228: left of '.mader' must have class/struct/union type
error C2228: left of '.year' must have class/struct/union type
搜索更多相关主题的帖子: 成员 结构 
2010-06-16 16:14
caochuan2000
Rank: 2
等 级:论坛游民
帖 子:66
专家分:35
注 册:2009-4-11
收藏
得分:0 
有知道的请帮忙看看,谢谢了啊
2010-06-16 18:13
debroa723
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:23
帖 子:862
专家分:1954
注 册:2008-10-12
收藏
得分:0 
car *ps=new car;
这里有点错误,你的目的是想建立一个有number个元素的car数组,而这句代码只能为你建立一个car指针对象,那么在后面的
(ps+i)必然是个空想。
正确应该:
car *ps=null;

cin>>number;
后分配数组元素空间:;
ps = new car[number];
而且第二个for中的p,实在没搞明白是从什么地方变出来的。
2010-06-16 21:41
caochuan2000
Rank: 2
等 级:论坛游民
帖 子:66
专家分:35
注 册:2009-4-11
收藏
得分:0 
我改了还是编译不了啊,后面的P,写错了,是PS
2010-06-17 08:33
caochuan2000
Rank: 2
等 级:论坛游民
帖 子:66
专家分:35
注 册:2009-4-11
收藏
得分:0 
改动后的程序:
#include <iostream>
#include <string>
int main()
{
    using namespace std;
    struct car
    {
        string mader;
        int year;
    };
    int number;
    cout<<"How many cars do you wish to catalog:";
    cin>>number;
    car *ps=new car[number];
    for(int i=0;i<number;i++)
    {
        cout<<"\nCar #"<<i<<":"<<endl;
        cout<<"Please enter the make:";
        cin.get(*(ps+i).mader);
        cout<<"please enter the year made:";
        cin>>*(ps+i).year;
    }
    cout<<"Here is your collection:"<<endl;
    for(int i=0;i<number;i++)
        cout<<*(ps+i).year cout<< *(ps+i).mader<<endl;
}
2010-06-17 08:33
gaoce227
Rank: 4
来 自:山东
等 级:业余侠客
帖 子:134
专家分:218
注 册:2008-4-5
收藏
得分:0 
“ cout<<*(ps+i).year cout<< *(ps+i).mader<<endl;”
2010-06-17 08:52
caochuan2000
Rank: 2
等 级:论坛游民
帖 子:66
专家分:35
注 册:2009-4-11
收藏
得分:0 
6楼的什么意思啊?这句有错吗?
2010-06-17 09:56
南国利剑
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:29
帖 子:1165
专家分:3536
注 册:2010-4-12
收藏
得分:0 
以下是引用debroa723在2010-6-16 21:41:34的发言:

car *ps=new car;
这里有点错误,你的目的是想建立一个有number个元素的car数组,而这句代码只能为你建立一个car指针对象,那么在后面的
(ps+i)必然是个空想。
正确应该:
car *ps=null;

cin>>number;
后分配数组元素空间:;
ps = new car[number];
而且第二个for中的p,实在没搞明白是从什么地方变出来的。
严重同意以上看法。

南国利剑
2010-06-17 13:35
rainbow1
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:2
帖 子:277
专家分:839
注 册:2010-5-19
收藏
得分:0 
此程序即按上面所说便改动编译也通不过。

[ 本帖最后由 rainbow1 于 2010-6-17 20:48 编辑 ]
2010-06-17 19:01
myth_feng
Rank: 2
等 级:论坛游民
威 望:1
帖 子:25
专家分:59
注 册:2010-8-11
收藏
得分:0 
#include <iostream>
#include <string>
int main()
{
    using namespace std;
    struct car
    {
        string mader;
        int year;
    };
    int number;
    cout<<"How many cars do you wish to catalog:";
    cin>>number;
    car *ps=new car[number];
    for(int i=0;i<number;i++)
    {
        cout<<"\nCar #"<<i<<":"<<endl;
        cout<<"Please enter the make:";
        cin>>(ps+i)->mader;
        cout<<"please enter the year made:";
        cin>>(ps+i)->year;
    }
    cout<<"Here is your collection:"<<endl;
    for(int i=0;i<number;i++)
     {
      cout<<(ps+i)->year<<"  "<<(ps+i)->mader<<endl;

     }
     system("Pause");
}
2010-09-28 16:38
快速回复:结构成员的读取问题
数据加载中...
 
   



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

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