2017-02-06 3 views
0

Я имею структуру с:Передача с-структуру пустой функцией

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

Можете ли вы объяснить, зажженная больше о функции и задачи, которую вы пытаетесь выполнить , какова ваша функция пустоты, это то, что принимает недействительные параметры и возвращает пустоту или что-то еще. –

+0

Непонятно, что именно «функция void» - это ваша проблема. Не могли бы вы привести примерный код, показывающий, чего вы пытаетесь достичь, что вы пробовали, и каков был результат. – 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

Я смущен о «а» в вызове, что это значит? – JonathanL

+0

@JonathanL, что 'a' - это имя объекта типа' struct ComicInfo'. Имя объекта может быть любым именем, которое вам нравится. – Rishi

Смежные вопросы