Я просто разберусь с вашей главной проблемой.Вы явно боретесь с концепциями передачи параметров в функции и возврата значений из функций.
Ваша функция getSalesData
хороша тем, что она возвращает данные о продажах, но вы упустили то, чтоВы должны поймать это возвращаемое значение в переменной в main
.Например,
int main() {
...
int size = 0;
double* salesData = getSalesData(size, filename);
...
}
double * getSalesData(int &size, string &filename)
{
...
return salesData;
}
Как только вы захватили возвращаемое значение, вы можете передать его в качестве параметра другим функциям, например,
selectionSortArray(salesData, size);
writeTofile(filename, salesData, size);
Обратите внимание, что вам не нужно передаватьимя файла для функции сортировки, и я только что передал имя файла (а не офстрим) функции записи.Ofstream необходим только в функции записи, поэтому нет необходимости объявлять его в основной функции.
Каждая функция, которую вы пишете, думает, что нужно этой функции в качестве параметров, и что она возвращает в качестве результата.Затем объявите эту функцию только с этими вещами.Переменные, в которых функция нуждается внутренне, должны быть объявлены в самой функции.
Наконец, в вашем коде отсутствуют некоторые прототипы функций, обычно вы помещаете их в начало вашего кода.Вот так
double * getSalesData(int &size, string &filename);
double * selectionSortArray(double* salesData, int size);
void writeTofile(string& filename, double* salesData, int size);
Это позволяет избежать любых ошибок, которые могут возникнуть в связи с необъявленными функциями.