gpt4 book ai didi

c++ - 在 C++ 中预定义 >> 运算符以跳过 '(' 和 ')'

转载 作者:行者123 更新时间:2023-11-27 23:50:06 25 4
gpt4 key购买 nike

如何在类之外预定义运算符 >> 以便我可以这样做:

Num number(0,0);
cin >> number; // input is "(1,2)"

我想在 1 上使用 set_num1(num1) 函数,在 2 上使用 set_num2(num2)。所以最后的数字应该是 number(1,2)。操作者在读取时应跳过(,),只获取数值,无需任何验证。

最佳答案

在阅读你的Num时忽略'(', ',', ')'字符类:

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;
}

请注意,此代码不对输入进行任何验证。

关于c++ - 在 C++ 中预定义 >> 运算符以跳过 '(' 和 ')',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47158404/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com