如何从带有引用的函数内部的引用中获取值?

时间:2019-05-08 23:46:52

标签: c++

我是cpp的新手,所以找不到解决该问题的方法。 我有一个函数 callOperation

void callOperation(int choice, int &n){ // HOW TO SHARE IT? AND HAVE STABLISH  V?
    // IDK HOW TO FIX THIS
    switch(choice){
    case 1:
        cout << "Loading..";
        loadOrder(n); // ????
        break; // 
    case 2:
        showOrders(loadOrder(n), n); // ????
        break;
    case 3:
        cout << "ADDING ORDERS" << endl; break;
    case 0:
        cout << "THANKS FOR USING PROGRAM! SEE YOU!" << endl;
        exit(0);
        break;
    default:
        cout << "UNDEFINED ERROR! REPORT THIS PROBLEM!" << endl;
    }
}

因此,这里我试图将我的 n 值分享给 main()函数。 (保持独立),它是另一个函数 loadOrder()

的引用
SOrder * loadOrder(int &number){
    ifstream file("in.txt");
    file >> number;
    SCar * CurrentCar = new SCar[number];
    SOrder * order = new SOrder[number];

    for(int i = 0; i < number; i++){
        file >> order[i].id;
        file >> order[i].clientInfo;
        file >> order[i].amountOfDays;
        file >> CurrentCar[i].model;
        file >> CurrentCar[i].carClass;
        file >> CurrentCar[i].price_per_day;
        order[i].car = &CurrentCar[i];
    }

    return order;
}

main()函数:

int main()
{
    int n = 0;
    do{
    showMenu();
    callOperation(choice(), n);
    }while(true);

    return 0;

}

问题:在以下情况下,我试图欠款 n :当首先选择操作 2 时,n(订单)为0。加载数据后(与结构相同,它可以正常工作),它必须始终等于num(来自file.txt)。 不幸的是, n的值会在循环中的每个圆圈中删除目标:整个循环的n值不变,与选择的操作无关。我已经计划增加订单,所以将来必须成功增加n。 也许对此有另一种选择? 感谢您的关注和耐心!希望您的帮助和解释! PS:整个?代码工作正常; PSS:return语句不能更改。它必须返回结构数组。 PSS:不允许使用向量

0 个答案:

没有答案