Не видит переменную winform

Рейтинг: -1Ответов: 1Опубликовано: 03.03.2023

Есть переменная n вот тут

void DataReading(Data1* (&d), int& n, std::string fileName)
{
    std::ifstream reading(fileName);

    if (reading)
    {
        Marc marca;
        Date date;
        Fuel fuel;
        Сondition condition;
        Price price;

        reading >> n; <--- тут ей присваивается значение 

        d = new Data1[n];

        for (int i = 0; i < n; i++)
        {
            reading >> marca.marca;
            reading >> date.day >> date.month >> date.year;
            reading >> fuel.in >> fuel.out;
            reading >> condition.condition;
            reading >> price.prices;

            d[i].DataEntry(marca, date, fuel, condition, price);
        }

        MessageBox::Show("Open");
    }
    else
        MessageBox::Show("Error");

    reading.close();

}

При попытке использовать её вот так

System::Void CursGraf::MyForm::buttonRead_Click(System::Object^ sender, System::EventArgs^ e)
{
    for (int i = 0; i < n; i++)
}

Не видит значение n, как правильно написать?

Ответы

▲ 0Принят

Я вроде разобрался как заставить это работать, в итоге вышло как-то так

int _actions,n;

void DataReading(Data1* (&d), int& n, std::string fileName)
{
    std::ifstream reading(fileName);

    if (reading)
    {
        Marc marca;
        Date date;
        Fuel fuel;
        Сondition condition;
        Price price;

        reading >> n;
        _actions = n;

        d = new Data1[n];

        for (int i = 0; i < n; i++)
        {
            reading >> marca.marca;
            reading >> date.day >> date.month >> date.year;
            reading >> fuel.in >> fuel.out;
            reading >> condition.condition;
            reading >> price.prices;

            d[i].DataEntry(marca, date, fuel, condition, price);
        }

        MessageBox::Show("Open");
    }
    else
        MessageBox::Show("Error");

    reading.close();

}

System::Void CursGraf::MyForm::buttonRead_Click(System::Object^ sender, System::EventArgs^ e)
{
    n = _actions;
    for (int i = 0; i < n; i++)
    {

    }
    return System::Void();
}