[英]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.