-1

例如,我希望输入一组 6 个数字。但是用户将以这种格式输入它们。

[1 2 3 4 5 6]

有没有办法设计它,以便 [ ] 被忽略或不放入我创建的数组中?

就像如果要输入 1 2 3 4 5 6 一切都会好起来的。如果我要输入 [1 2 3 4 5 6] 显然我会遇到问题。有没有办法定义 [] 应该被忽略甚至不输入到输入数组中?

下面我使用重载运算符,其中我输入了信息。前两个值只是我的二维数组的维度。因此,如果我要输入 [2 2 5 3 5 3] 它只会输入 2 2 之后的值,这些值是我设置的数组的大小。但我需要处理这些符号[ ],以免它们发生冲突。解决此问题的最佳方法是什么?

friend istream& operator>>(istream& is, Array<T> &array)
{
    int rowX, colY;
    is >> rowX;
    is >> colY;

    array.create(rowX, colY);

    for(int i = 0; i<array.numRowX(); i++)
        for(int j = 0; j<array.numColY(); j++)
        {
            T data;
            is >> data;
            array.setarray(i, j, data);
        }

    return is;
}
4

1 回答 1

3

您可以使用变量来读取要忽略的输入。如果你只是跳过单个字符,这样的事情应该可以工作:

char ignoreChar;

is >> ignoreChar; // Should be a '['

// for loop goes here

is >> ignore; // Shoudl be a ']'

您可能需要添加 if 语句以确保忽略的字符实际上是您所期望的。

或者,您可以将整行作为字符串读取并从那里提取您想要的信息。这称为字符串解析。

于 2013-02-12T00:50:30.880 回答