Windows Forms ,выбивает ошибку Значение не может быть неопределенным. Имя параметра item

Мне нужно чтобы в 1 листбокс выводилось имя студента а во второй листбокс его оценку , считываю из файла в котором уже было записано string и int , не могу понять в чём дело.

    panel2->Visible = true;
    FILE *pf;
    String ^name;
    int mark;
    pf = fopen("marks.txt", "r");
    if (pf == NULL)
    {
        MessageBox::Show("Error");
    }
    else 
    {
        while (!EOF)
        {
            fscanf(pf, "%s%d", name, &mark);
        }
        fclose(pf);
        listBox1->Items->Add(name);
        if (ifPressedTest == true)
        {
            listBox2->Items->Add(mark.ToString());
        }
    }
} 

Ответы (1 шт):

Автор решения: abritov
panel2->Visible = true;
try {
    StreamReader *reader = new StreamReader("marks.txt");
    do
    {
        String ^line = reader->ReadLine();
        String ^name = line.split(" ")[0];
        String ^mark = line.split(" ")[1];
        listBox1->Items->Add(name);
        if (ifPressedTest == true)
        {
            listBox2->Items->Add(mark);
        }
    } while(reader->Peek() != -1);
} catch (System::Exception *e) {
    MessageBox::Show("Error");
}

Можно вот так сделать. Под рукой нет среды для Visual C++, поэтому могут быть ошибки, писал в блокноте.

→ Ссылка