繁体   English   中英

输入关系数组

[英]Inputting a relationship array

我试图输入一个表示关系的二进制数组。 例如,数组:

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

}

但是,该提示线仅输出...笑脸? 无论我输入什么,我都会得到笑脸。 我在这里迷路了。 我一直在寻找任何意外分配,并且我认为这可能与我的类型转换有关,但是后来。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM