C++:重载输入输出流(C++实现)

设计学生信息类,其结构如下:

class stuinfo{

    char stuno[20];               //学号

    char name[20];              //姓名

    int sum;                         //总成绩

public:

    stuinfo(char *st, char *na, int score);

    friend ostream & operator<<(ostream &out, stuinfo &obj); //用友元函数,实现流输出重载

};

main函数:

int main( )

{

    stuinfo a("1200111","tom",345);

    cout << a;

}

其结果为:

学号:1200111

姓名:tom

总成绩:345

代码如下:

using namespace std;
#include<iostream> 

class stuinfo{
	char stuno[20];                                          //学号
	char name[20];                                           //姓名
	int sum;                                                 //总成绩
public:
	stuinfo(char *st, char *na, int score);
	friend ostream & operator<<(ostream &out, stuinfo &obj); //用友元函数,实现流输出重载
};
stuinfo::stuinfo(char *st,char *na,int score){
	int i=0,j=0;
	while(*(st+i)!='\0'){
		stuno[i]=*(st+i);
		i++;
	}
	stuno[i]='\0';                              //最后不要忘记加上字符串结束符,name数组也是
	while(*(na+j)!='\0'){
		name[j]=*(na+j);
		j++;
	}
	name[j]='\0';
	sum=score;
}
ostream & operator<<(ostream &out, stuinfo &obj){
	out<<"学号:"<<obj.stuno<<endl<<"姓名:"<<obj.name<<endl<<"总成绩:"<<obj.sum<<endl; 
	return out;
}

int main()
{
	stuinfo a("1200111","tom",345);
	cout << a;
}

运行结果:

小结: 

重载输入输出流并不难实现,没啥好说的,需要注意到的一点是,在输入完学号和名字后需要再加上一个‘\0’来结束字符串。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Starherder

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值