首先,这是我的班级任务,我已经脱掉了所有的头发,并决定请你们帮忙。所以,我有一个txt文件,其中包含一些结构化信息(字符串,双精度,字符串,双...),我需要将其读入一个结构数组。那部分代码工作正常。但是,当我把它单独的功能,并尝试调用它没有任何作用。我假设我传入函数的值写错了。请指出我搞砸了哪里。非常感谢你提前!
#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;
}
答案 0 :(得分:0)
int getData(ifstream inFile, menuItemType* menuList, int numberOfItems);
在main()
内声明一个函数(它有效,它实际上隐藏了非主要声明)。您可能打算调用 getData
函数,例如
getData(inFile, menuList, numberOfItems);
其中inFile
,menuList
,numberOfItems
是您必须定义/传递的参数。
您还需要通过引用传递ifstream
(因为您无法复制它),或者传递时传递std::move
(后一选项仅在C ++ 11中有效)。