Прежде всего это мое задание класса, и я уже вытащил все свои волосы и решил попросить вас, ребята, о помощи. Итак, у меня есть txt-файл с некоторой структурированной информацией (строка, double, string, double ...), и мне нужно прочитать его в массив структур. Эта часть кода работает нормально. Но когда я ставлю отдельную функцию и попытаюсь назвать ее, ничего не получится. Я предполагаю, что значения, которые я передаю в функцию, записываются неправильно. Пожалуйста, укажи мне, где я испортился. Заранее большое спасибо!C++ pass struct к функции
#include <iostream>
#include <iomanip>
#include <string>
#include <fstream>
using namespace std;
int numberOfItems;
ifstream inFile;
struct menuItemType
{
string menuItem;
double menuPrice;
};
void showMenu(menuItemType, int&);
int getData(ifstream, menuItemType*, int);
int main()
{
menuItemType *menuList;
menuList = new menuItemType[numberOfItems];
int getData(ifstream inFile, menuItemType* menuList, int numberOfItems);
cout << "Test\n";
return 0;
}
// Get Data from txt file
int getData(ifstream inFile, menuItemType* menuList, int numberOfItems)
{
int counter;
string s;
inFile.open("test.txt");
for (counter = 0; counter < numberOfItems; counter++)
{
getline(inFile, s);
menuList[counter].menuItem = s;
inFile.ignore();
inFile >> menuList[counter].menuPrice;
inFile.ignore();
}
inFile.close();
return 1;
}
Составляет ли он? – user3528438
Вы не инициализируете 'numberOfItems', вы повторно используете' getData' вместо того, чтобы вызывать его, и даже если вы его вызывали, он не будет компилироваться, потому что потоки не могут быть скопированы. – user657267
Он компилируется без ошибок. numberOfItems предполагается инициализироваться в функции getData. –