输入关系数组

时间:2016-05-05 05:06:55

标签: c++ vector input

我正在尝试输入代表关系的二进制数组。例如,数组:

001
000
100

将输出(0,2),(2,0)

为此,我尝试从输入中逐个抓取一个字符,然后根据遇到换行符更改计数器。

到目前为止,这是我的代码。

char inChar;
int x = 0;
int y = 0;
while (inChar = ins.get() != '$') { 
        //$ is used to terminate input
        vector <int> orderedPair;
        if(inChar == '\n') {
            y++;
            x=0;
        } else {
            x++;
        }
        cout << inChar;
        int isPair = inChar - '0';
        if(isPair == 1){
            orderedPair.push_back(x);
            orderedPair.push_back(y);
            pointsList.push_back(orderedPair);
            orderedPair.clear();
        }

}

然而,那条cout线只输出......笑脸?无论我进入什么,我只会笑脸。我迷失在这里。我已经找到了任何意外的任务,我认为这可能是我的类型转换的问题,但是后来这个。

1 个答案:

答案 0 :(得分:1)

inChar = ins.get() != '$'表示inChar = (ins.get() != '$'),读取的字符是否等于'$'将被存储到inChar而不是字符本身。您可以使用(inChar = ins.get()) != '$'保存输入,并检查输入是否为'$'

另请注意,orderedPair将在每次迭代时被清除,因为它被声明为块的局部变量,因此您不需要orderedPair.clear();