2017-02-06 115 views
0

我的结构:传递一个结构为void功能

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; 
}; 

我将如何通过结构和databaseMaxSize于气孔功能,是所有我必须做的结构?

编辑:完整的代码,我知道我没有调用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, ','); 
       } 
} 
+0

能否请你解释一下点燃更多的功能和任务,你要完成,你的无效函数是什么,是采用void params并返回void或其他东西。 –

+0

目前还不清楚“void function”究竟是什么问题。你介意提供一些示例代码来展示你想要达到的目标,你尝试过什么,结果如何。 – yeputons

+0

我想将7个“变量”传递给一个void函数,然后打开一个文件并将数据读入变量。我在我的主函数中有这行代码,不知道它是否应该在那里:“ComicInfo数据库[databaseMaxSize];” – JonathanL

回答

1
void my_function (struct ComicInfo& st, int databaseMaxSize) { 
// code 
} 

注意,我们传递一个参照对象,因此未创建的对象的额外副本。如果my_function是不应该做出的结构数据的变化,参数可以被标记为const struct ComicInfo&

调用:

struct ComicInfo a; 
my_function(a, databaseMaxSize); // Assuming you have databaseMaxSize available 
+0

我对调用中的“a”感到困惑,这是什么意思? – JonathanL

+0

@JonathanL,'a'是'struct ComicInfo'类型的对象的名字。对象名称可以是您喜欢的任何名称。 – Rishi