Я не могу понять, почему выход идет дважды.
int lines = 3
myReadFile.open("graph.txt");
if (myReadFile.is_open()) {
//Read in each value one at a time
while (!myReadFile.eof()) {
for(int i = 0; i < lines; i++) {
for(int j = 0; j<lines; j++) {
myReadFile >> output;
output2 = atoi(output);
Graph[i][j] = output2;
cout << "Graph[" << i <<"][" << j <<"] = " << output2 << endl;
}
//cout << output << output2 << endl;
}
}
} else {
cout << "graph.txt does not exist." << endl;
}
myReadFile.close();
выход ниже:
Graph[0][0] = 0
Graph[0][1] = 65
Graph[0][2] = 4
Graph[1][0] = 7
Graph[1][1] = 0
Graph[1][2] = 68
Graph[2][0] = 67
Graph[2][1] = 84
Graph[2][2] = 0
Graph[0][0] = 0
Graph[0][1] = 0
Graph[0][2] = 0
Graph[1][0] = 0
Graph[1][1] = 0
Graph[1][2] = 0
Graph[2][0] = 0
Graph[2][1] = 0
Graph[2][2] = 0
Он делает то, в чем я нуждаюсь, но он возвращается, но и возвращает нули. Любая помощь будет замечательной! Благодарю!
efo() возвращает флагом состояния eofbit stream, который будет установлен только тогда, когда вы читаете конец файла. Это происходит во время второй итерации цикла while, где вы пытаетесь прочитать содержимое файла в 'output'.
Если вы поместите проверку eof() после этой строки, вы сможете точно вырваться из всех циклов (вам нужно будет использовать переменную локального флага, которую вы можете проверить во всех внутренних циклах).
while (!eof())
не так. Примите во внимание тот факт, что вы используете ввод перед проверкой, если он действителен.