我正在尝试输入一个表示关系的二进制数组。例如,数组:
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 行只是输出……笑脸?不管我输入什么,我只会得到笑脸。我在这里迷路了。我一直在寻找任何意外分配,我认为这可能是我的类型转换的问题,但那是后来的事。
最佳答案
inChar = ins.get() != '$'
表示inChar = (ins.get() != '$')
读取的字符是否为是否等于 '$'
将被存储到 inChar
而不是字符本身。您可以使用 (inChar = ins.get()) != '$'
来保存输入并检查输入是否为 '$'
。
另请注意,orderedPair
将在每次迭代时被清除,因为它被声明为 block 的局部变量,因此您不需要 orderedPair.clear();
.
关于c++ - 输入关系数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37042798/