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