我正在使用scanf爲圖形輸入。輸入如下:scanf()給最後一行輸入提供錯誤的輸出
8
1 2
3 3 5 6
2 4 7
2 3 8
2 1 5
1 7
2 6 4
0
第一個整數(8)是頂點數,後面跟着8行。每個中的第一個整數是第一行頂點1,第二行頂點2出來的邊的數量,依此類推。
我寫的功能如下:
void getInput() {
//init();
int numVertex; int numTest;
scanf("%d", &numVertex);
for(int i =1 ; i <= numVertex;i++) {
int ver,nC; vector<int> vList;
//fscanf(file,"%d", &ver);
scanf("%d", &nC);
for(int j=0;j<nC;j++) {
int temp ;
scanf("%d", &temp);
vList.push_back(temp);
}
props pr = {-1,-1 , vList};
graph.insert(make_pair(i, pr));
}
}
然而,輸出爲我輸入的最後一行變得怪異,它基本上重複了前行多次的最後一位。對於上面的輸入,我得到的輸出:
1 : 2
2 : 3 5 6
3 : 4 7
4 : 3 8
5 : 1 5
6 : 7
7 : 6 4
8 : 4 4 // this is where it should give nothing
誰能告訴我這裏怎麼了?當我轉換爲通過文件輸入時,完全相同的轉換序列爲我提供了正確的輸出。
有人可以請我指出任何錯誤?
請您澄清一下您的輸入格式?目前尚不清楚你的分隔線在哪裏。也不完全清楚你的輸出應該是什麼。 – EFraim