VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 785|回复: 7

运算符>>重载问题

[复制链接]

1

主题

5

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
发表于 2020-2-7 00:30:01 | 显示全部楼层 |阅读模式
class Time{
friend ostream &operator<<(ostream &output,Time &t)
{
        cout<<t.hour<<":"<<t.minute<<":"<<t.second;
        return output;
}
friend istream &operator>>(istream &input,Time &t)
{
}
private:
        int hour;int minute;int second;
};
要求按照hh-mm-ss的格式输入类Time的对象,不清楚要怎么写那个重载>>的函数,请大家赐教
回复

使用道具 举报

0

主题

14

帖子

15.00

积分

新手上路

Rank: 1

积分
15.00
发表于 2020-3-28 00:15:01 | 显示全部楼层
friend istream &operator>>(istream &input,Time &t)
{
    string temp;
    input >> temp;
    // 解析temp,子串,字符串-》int……
}
回复

使用道具 举报

1

主题

5

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
 楼主| 发表于 2020-3-28 13:30:01 | 显示全部楼层
friend istream &operator>>(istream &input,Time &t)
{
    string temp;
    input >> temp;
    // 解析temp,子串,字符串-》int……
}
================================================
能否写完整,多谢啦:)
回复

使用道具 举报

0

主题

14

帖子

15.00

积分

新手上路

Rank: 1

积分
15.00
发表于 2020-3-30 00:15:01 | 显示全部楼层
#include <string>
#include <iostream>
#include <sstream>
using namespace std;

class Time
{
        friend ostream &operator<<(ostream &output,Time &t)
        {
                cout<<t.hour<<":"<<t.minute<<":"<<t.second;
                return output;
        }
        friend istream &operator>>(istream &input,Time &t)
        {
                string temp;
                input >> temp;
                istringstream iss;
                iss.str(temp);
                iss.str(temp.substr(0, 2));
                iss >> t.hour;
                iss.clear();
                iss.str(temp.substr(3, 2));
                iss >> t.minute;
                iss.clear();
                iss.str(temp.substr(6, 2));
                iss >> t.second;
                return input;
        }
private:
        int hour;
        int minute;
        int second;
};

int main(void)
{
    Time t;
    cin >> t;
    cout << t << endl;
    return 0;
}
回复

使用道具 举报

1

主题

5

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
 楼主| 发表于 2020-4-2 18:30:02 | 显示全部楼层
我懂了
有没有其他方法呀
回复

使用道具 举报

1

主题

39

帖子

27.00

积分

新手上路

Rank: 1

积分
27.00
发表于 2020-4-8 10:45:01 | 显示全部楼层
hh-mm-ss
简单的方法:

int hh, mm, ss;
string b;
cin >> hh >> b >> mm >> b >> ss;
回复

使用道具 举报

1

主题

5

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
 楼主| 发表于 2020-4-13 16:00:01 | 显示全部楼层
简单的方法:

int hh, mm, ss;
string b;
cin >> hh >> b >> mm >> b >> ss;
==============================================
?
回复

使用道具 举报

1

主题

5

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
 楼主| 发表于 2020-4-13 17:00:02 | 显示全部楼层
简单的方法:

int hh, mm, ss;
string b;
cin >> hh >> b >> mm >> b >> ss;
==========================================
?
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

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