我正在尝试输入代表关系的二进制数组。例如,数组:
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线只输出......笑脸?无论我进入什么,我只会笑脸。我迷失在这里。我已经找到了任何意外的任务,我认为这可能是我的类型转换的问题,但是后来这个。
答案 0 :(得分:1)
inChar = ins.get() != '$'
表示inChar = (ins.get() != '$')
,读取的字符是否等于'$'
将被存储到inChar
而不是字符本身。您可以使用(inChar = ins.get()) != '$'
保存输入,并检查输入是否为'$'
。
另请注意,orderedPair
将在每次迭代时被清除,因为它被声明为块的局部变量,因此您不需要orderedPair.clear();
。