我是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:不允许使用向量