重载<<和>>进行时间类型数据的输入/输出
时间: 2023-08-17 07:12:27 浏览: 92
用户自定义类型的输入输出-C++输入输出流
可以使用友元函数重载<<和>>操作符来实现时间类型数据的输入/输出。以下是一个示例代码:
```c++
#include <iostream>
class Time {
private:
int hour;
int minute;
int second;
public:
Time(int h = 0, int m = 0, int s = 0) {
hour = h;
minute = m;
second = s;
}
friend std::ostream& operator<<(std::ostream& os, const Time& t);
friend std::istream& operator>>(std::istream& is, Time& t);
};
std::ostream& operator<<(std::ostream& os, const Time& t) {
os << t.hour << ":" << t.minute << ":" << t.second;
return os;
}
std::istream& operator>>(std::istream& is, Time& t) {
char ch;
is >> t.hour >> ch >> t.minute >> ch >> t.second;
return is;
}
int main() {
Time t1(10, 20, 30);
std::cout << "Time t1: " << t1 << std::endl;
Time t2;
std::cout << "Enter time t2(hh:mm:ss): ";
std::cin >> t2;
std::cout << "Time t2: " << t2 << std::endl;
return 0;
}
```
在上面的代码中,我们使用了友元函数 `operator<<` 和 `operator>>` 分别重载了输出和输入操作符。在输出操作符中,我们将时间类型数据以 `hh:mm:ss` 的格式输出到流中。在输入操作符中,我们使用了 `>>` 运算符以 `hh:mm:ss` 的格式从流中读取时间数据并存储在对象中。
注意:上述代码只是一个示例,实际应用中可能需要更复杂的输入/输出格式和数据验证。
阅读全文