【发布时间】:2017-02-06 15:45:16
【问题描述】:
我的结构是:
const int strSize = 256;
const int databaseMaxSize = 10;
struct ComicInfo {
char name[strSize];
char author[strSize];
char volumeInfo[strSize];
char publisher[strSize];
int year;
double price;
int copies;
};
如何将 struct 和 databaseMaxSize 传递给 void 函数,这就是我对 struct 要做的全部事情吗?
编辑:完整代码,我知道我没有调用 void 函数。 我正在尝试将 7 个变量放入 void loadData 函数中,如何创建正确的 loadData 函数,我是否正确加载了文本文件“Comics.txt”中的数据?
#include <iostream>
#include <fstream>
#include <iomanip>
#include <cstring>
using namespace std;
const int strSize = 256;
const int databaseMaxSize = 10; // Testing value, set it higher
struct ComicInfo {
char name[strSize];
char author[strSize];
char volumeInfo[strSize];
char publisher[strSize];
int year;
double price;
int copies;
};
void loadData(struct ComicInfo database[databaseMaxSize], int databaseSize);
int main () {
ComicInfo database[databaseMaxSize];
int databaseSize = 0;
file.close();
return 0;
}
void loadData(struct ComicInfo database[databaseMaxSize], int databaseSize)
{
*databaseSize = 0;
ifstream inputFile;
inputFile.open("Comics.txt");
if (!inputFile.is_open){
exit(1);
}
inputFile.getline(database[name], databaseSize, ',');
while (!inputFile.eof()){
inputFile.getline(database[author], databaseSize, ',');
inputFile.getline(database[volumeInfo], databaseSize, ',');
inputFile.getline(database[publisher], databaseSize, ',');
inputFile.getline(database[year], databaseSize, ',');
inputFile.getline(database[price], databaseSize, ',');
inputFile.getline(database[copies], databaseSize, ',');
databaseSize++;
inputFile.getline(database[name], databaseSize, ',');
}
}
【问题讨论】:
-
您能否详细解释一下您要完成的功能和任务,您的 void 功能是什么,是采用 void 参数并返回 void 或其他内容。
-
尚不清楚您的问题究竟是什么“无效函数”。您是否介意提供一些示例代码来说明您要实现的目标、尝试过的目标以及结果如何。
-
我试图将 7 个“变量”传递给一个 void 函数,然后打开一个文件并将数据读入变量中。我的主函数中有这行代码,不知道它是否应该在那里:“ComicInfo database[databaseMaxSize];”
-
我尝试过的 void 函数,错误是变量未在该范围内声明:“void loadData(struct ComicInfo database[databaseMaxSize], int databaseSize);”
-
请写出您所写的完整代码,其中包含您所面临的错误。