注册 登录
编程论坛 C++教室

c++结构体怎么弄?

aqwszddd 发布于 2014-03-30 20:52, 575 次点击
#include <iostream>
#include <string>
using namespace std;
struct DATE
    {
  int year;
  int month;
  int day;
  };
struct STUDENT
    {
  int num;
  string name;
    DATE birthday;
    float score;
    }st;
void input(STUDENT &st)
{
    int i;
    cin>>"请输入第">>i>>"位学生">>endl>>"请输入学号">>i>>endl>>"请输入学生姓名">>st.name[i]>>endl;
    cin>>"请输入学生出生日期">>st.birthday.year>>st.birthday.month>>st.birthday.day>>endl;
    cin>>"请输入学生成绩">>st.score>>endl;
    }
void print(STUDENT *st)
{
    int i;
    cout<<"请输入第"<<i<<"位学生"<<endl<<"请输入学号"<<i<<endl<<"请输入学生姓名"<<st.name[i]<<endl;
    cout<<"请输入学生出生日期"<<st.birthday.year<<st.birthday.month<<st.birthday.day<<endl;
    cout<<"请输入学生成绩"<<st.score<<endl;
    }
int main()
{
    int i;
    STUDENT stu[2];
    for(i=0;i<2;i++)
        input(stu[i]);
    for(i=0;i<2;i++)
        print(stu[i]);
    return 0;
}
有错误。
&st与*st怎么弄?
4 回复
#2
天使梦魔2014-03-30 21:54
cin>>"请输入第">>i
..............


.是成员指针
->是成员引用

如果参数是&st
那么成员使用指针,就是 st.num
如果参数是*st
那么成员使用引用,就是 st->num
作用都是导出符号,不然会出现指针的指针
#3
aqwszddd2014-03-31 06:57
亲,麻烦你在说清楚一下好吗?在main函数中怎么用?                                        unknown character '0xa1‘
D:\Program Files\Microsoft Visual Studio\MyProjects\Te.cpp(28) : error C2227: left of '->year' must point to class/struct/union
D:\Program Files\Microsoft Visual Studio\MyProjects\Te.cpp(28) : error C2819: type 'DATE' does not have an overloaded member 'operator ->
怎么回事?
#4
aqwszddd2014-03-31 10:47
#include <iostream>
#include <string>
using namespace std;
struct DATE
    {
    int month;
    int day;
    int year;
    };
struct STUDENT
    {
    int num;
    char name[20];
    DATE birthday;
    float score;
    }st;
void input(STUDENT &st)
{
    static int i=1;
    cout<<"请输入第"<<i<<"名学生信息:"<<endl;
    cout<<"请输入学号:"<<i<<endl;
    cout<<"请输入学生姓名:";
    cin>>st.name;
    cout<<"请输入学生出生日期:";
    cin>>st.birthday.year>>st.birthday.month>>st.birthday.day;
    cout<<"请输入学生成绩:";
    cin>>st.score;
    i++;
    }
void print(STUDENT *st)
{
    static int i=1;
    cout<<"请输出第"<<i<<"名学生信息"<<endl;
    cout<<"请输出学号"<<i<<endl;
    cout<<"请输出学生姓名"<<st->name<<endl;
    cout<<"请输出学生出生日期"<<st->birthday.year<<'\t'<<st->birthday.month<<'\t'<<st->birthday.day<<endl;
    cout<<"请输出学生成绩:"<<st->score<<endl;
    i++;
    }
int main()
{   
    int i;
    STUDENT stu[2];
    for(i=0;i<2;i++)
        input(stu[i]);
    for(i=10;i<2;i++)
        print(&stu[i]);
    return 0;
}
已解决谢谢
#5
QQ13971563932014-04-03 11:08
你们学到哪里了啊。。。。这样的程序我目前还写不出来。、、
1