1

我想到了一些问题,并会尝试在这里问..

下面是一个运算符重载

ifstream& operator>>(ifstream &input, Map2D &map2d)
{
    int x1,x2,y1,y2;

    //get x1 first
    input.ignore(2);
    input>>x1;

    //get y1
    input.ignore();
    input>>y1;

    //get x2
    input.ignore(4);
    input>>x2;

    //get y2
    input.ignore();
    input>>y2;
    input.ignore();
}

这是我的文本文件

Map2D, [5, 7], [3, 8]

我想到的问题是,x2 因为我的分隔符是逗号,为什么 x2 是忽略(4)而不是忽略(2),我尝试忽略(2)并且数字搞砸了。但忽略(4)是正确的1。

当只有空格和 [ 时,为什么它是 (4)

x2 refer to value 3

谢谢!!用于解释

4

1 回答 1

1

您正在跳过四个不同字符的“]、[”。

当您读取 y1 时,您仍处于流中 y1 的位置。这个位置在右括号“]”的结尾之前,然后您必须阅读逗号、空格和下一个括号“[”。

于 2012-11-15T08:46:30.090 回答