2017-02-06 197 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