鱼C论坛

 找回密码
 立即注册
查看: 2046|回复: 2

跳出循环后多输出了一组数据

[复制链接]
发表于 2018-11-21 21:18:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
在跳出循环后,39行的print函数不知道为什么多输出了一个数据,有大佬知道这是为什么吗qwq

这个是Sales_data结构体
#pragma once
#include<string>
#include<iostream>
struct Sales_data{
        Sales_data(const std::string &a):bookno(a){}
        Sales_data(const std::string &a,unsigned b,double c):bookno(a),units_sold(b),revenue(c){}
        Sales_data():bookno(),units_sold(0),revenue(0.0){}//不支持类内初始值,自己加的结构函数初始化列表
        Sales_data(std::istream &a);



std::string isbn()const;
        Sales_data& combine(const Sales_data &a);



        std::string bookno;
        unsigned units_sold;
        double revenue;
};
std::string Sales_data::isbn()const{
        return bookno;
}
Sales_data& Sales_data::combine(const Sales_data &a){
        units_sold+=a.units_sold;
        revenue+=a.revenue;
        return *this;
}
Sales_data add(const Sales_data &item1,const Sales_data &item2){
        Sales_data item3=item1;
        item3.combine(item1);
        return item3;
}
std::istream& read(std::istream &is,Sales_data &item){//这里返回的istream是引用,原因是流对象不允许复制,在传给函数作为参数是应该传入引用
        is>>item.bookno>>item.units_sold>>item.revenue;
        return is;
}
std::ostream& print(std::ostream &os,Sales_data &item){
        os<<item.bookno<<" "<<item.units_sold<<" "<<item.revenue;
        return os;
}

        Sales_data::Sales_data(std::istream &is){
        read(is,*this);
        }
xzd.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-11-21 22:27:41 | 显示全部楼层
有没有可能是第35行打印的呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-11-25 20:33:16 From FishC Mobile | 显示全部楼层
TOP_LK 发表于 2018-11-21 22:27
有没有可能是第35行打印的呢?

逐语句看出来不是
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-2 22:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表