在 C++ 中预定义 >> 运算符以跳过 '(' 和 ')'
Predefine >> operator in c++ to skip '(' and ')'
如何在 class 之外预定义运算符 >>
以便我可以这样做:
Num number(0,0);
cin >> number; // input is "(1,2)"
我想在 1 上使用 set_num1(num1)
函数,在 2 上使用 set_num2(num2)
函数。
所以最后的数字应该是number(1,2)
。操作者在读取时应跳过(,),只取数值,无需任何验证。
阅读您的 Num
class:
时请忽略 '('
、','
、')'
字符
std::istream& operator>>(std::istream& is, Num& num) {
cin.get(); // ignore '('
int n{0};
cin >> n;
num.set_num1(n);
cin.get(); // ignore ','
cin >> n;
num.set_num2(n);
cin.get(); // ignore ')'
return is;
}
请注意,此代码不对输入进行任何验证。
如何在 class 之外预定义运算符 >>
以便我可以这样做:
Num number(0,0);
cin >> number; // input is "(1,2)"
我想在 1 上使用 set_num1(num1)
函数,在 2 上使用 set_num2(num2)
函数。
所以最后的数字应该是number(1,2)
。操作者在读取时应跳过(,),只取数值,无需任何验证。
阅读您的 Num
class:
'('
、','
、')'
字符
std::istream& operator>>(std::istream& is, Num& num) {
cin.get(); // ignore '('
int n{0};
cin >> n;
num.set_num1(n);
cin.get(); // ignore ','
cin >> n;
num.set_num2(n);
cin.get(); // ignore ')'
return is;
}
请注意,此代码不对输入进行任何验证。