У меня есть функция fillTable(), которая использует ifstream для чтения ввода из файла.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 и получил -52 'Ì' для vertexName и -858993460 для outDegree.
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. Первая буква каждой строки - это имя вершины, число - значение outDegree, а остальные буквы в каждой строке представляют смежные вершины начальной вершины. в основном я получаю все, начиная с первой строки, а затем вырывается из цикла, и я не уверен, почему это так. Любая помощь приветствуется.
WOWOWOWOW !!! просто зафиксировал его. Я знаю, что никто еще не ответил на этот вопрос, но мне кажется, что мне нужно было только добавить перерыв; для второго цикла while. – BugCity