编写程序,重载运算符“<<”和“>>”,使用户能直接输入和输出固定电话的号码。电话号码以如下形式输入和输出: (027)xxxxxxxx
时间: 2024-03-20 22:44:15 浏览: 151
好的,这里是C++的实现:
```c++
#include<iostream>
#include<string>
using namespace std;
class Phone {
public:
Phone(string n = "") :number(n) {}
friend istream& operator>>(istream& is, Phone& p) {
is.ignore(1); // 忽略左括号
getline(is, p.number, ')');
is >> p.number;
return is;
}
friend ostream& operator<<(ostream& os, const Phone& p) {
os << "(" << p.number.substr(0, 3) << ")" << p.number.substr(3);
return os;
}
private:
string number;
};
int main() {
Phone p1;
cout << "请输入电话号码:";
cin >> p1;
cout << "电话号码为:" << p1 << endl;
return 0;
}
```
这里定义了一个名为Phone的类,用来表示固定电话号码。在类中重载了输入运算符>>和输出运算符<<,以支持直接输入和输出电话号码。在输入运算符>>中,使用了istream类的ignore函数忽略了左括号,并使用了getline函数获取了电话号码中右括号前的数字部分,最后再获取了剩余的数字部分。在输出运算符<<中,将电话号码按照格式输出。
在主函数中,创建了一个Phone对象p1,然后使用重载的>>运算符从标准输入中获取电话号码,并使用重载的<<运算符将电话号码按照格式输出。
阅读全文