【问题标题】:c++ read using operator >>c++ 使用运算符读取 >>
【发布时间】:2013-04-23 20:19:02
【问题描述】:

我有课

class BigNumber{
public:
    int digits[100];

    BigNumber();
    friend istream& operator>>(istream& is, BigNumber& dt);
};

我想使用运算符 >> 从流中读取一个数字,并将每个数字放入数字数组中。

我该怎么做?

【问题讨论】:

  • 先将数字读入string,然后将每个字符转换为对应的数字(从09)。这很容易。
  • 也许您应该重新考虑您的设计 - 使用 int 为每个数字存储一个整数是非常浪费的。
  • 我试过了,但我无法将 char 转换为 int
  • atoi 函数可以做到这一点。
  • ch - '0',将十进制数字(在 char 变量 ch 中)转换为整数。

标签: c++ overriding operator-keyword


【解决方案1】:
`
istream& operator >> (istream& is, BigNumber& dt)
{
    string s;
    is>>s;
    for(int i = 0; i < s.length(); i++)
    {
        dt = 10*dt + s[i];
    }
    return is;
}
`

您可以添加一些 try catch 块以确保他输入数字或其他内容,但我认为它运作良好实际上我希望它运作良好,我希望它会有所帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-12
    • 1970-01-01
    • 2010-12-09
    • 1970-01-01
    • 2011-09-08
    • 2011-11-18
    • 1970-01-01
    相关资源
    最近更新 更多