Проблема в том, что XMLElement.Attribute возвращает const char*
, представляющий строку C, а не int
.Так что этот код
(int)count->Attribute("cont");
неверен, поскольку вы приводите указатель на целое число (которое обычно приводит к очень большому целочисленному значению, отсюда и ваш очевидный бесконечный цикл).
Что вам нужно преобразовать атрибут в int
, не приведя его.Один из способов сделать это - использовать функцию atoi
int numTests = atoi(count->Attribute("cont"));
for (int i = 0; i < numTests; ++i) {
Обратите внимание, что в этом коде нет проверки ошибок (что, если атрибут отсутствует или не имеет интегральной формы?).
Важно понимать разницу между приведением и преобразованием одного типа в другой.Они не всегда делают одно и то же, и просто добавить приведение, чтобы сообщение об ошибке компилятора исчезло, редко бывает правильным.