我有这个fillTable()函数,它使用ifstream来读取文件的输入。
void dgraph::fillTable()
{
char x = ' ';
slot = 0;
ifstream fin("table.txt");
while (fin >> Gtable[slot].vertexName)
{
countUsed++;
while (fin >> Gtable[slot].outDegree)
{
int y = 0;
while (y < Gtable[slot].outDegree)
{
fin >> x;
Gtable[slot].adjacentOnes.addRear(x);
y++;
}
}
slot++;
}
fin.close();
}
问题是主while循环只执行一次。我需要它继续前进,直到文件中没有任何内容。到目前为止我能够弄清楚的是,除0之外的其他指数似乎都没有起作用。我尝试从索引1开始,并为vertexName获得-52'Ì',为outDegree获得-858993460。
A 2 B F
B 2 C G
C 1 H
E 0
F 2 I E
G 0
H 2 G I
I 3 A G E
这是我想要读入Gtable的输入文件。每行的第一个字母是vertexName,数字是outDegree,每行的其余字母表示初始顶点的相邻顶点。基本上我从第一行得到了所有东西,然后它突破了循环,我不确定为什么会这样。任何帮助表示赞赏。
答案 0 :(得分:0)
刚加入休息;声明到第二个循环。
while (fin >> Gtable[slot].vertexName)
{
countUsed++;
while (fin >> Gtable[slot].outDegree)
{
int y = 0;
while (y < Gtable[slot].outDegree)
{
fin >> x;
Gtable[slot].adjacentOnes.addRear(x);
y++;
}
break;
}
slot++;
}
fin.close();