繁体   English   中英

传递带有void函数的结构

[英]Passing a struct with a void function

我的结构:

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函数,这是我对结构所做的全部工作?

编辑:完整代码,我知道我没有调用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 my_function (struct ComicInfo& st, int databaseMaxSize) {
// code
}

请注意,我们正在传递对该对象的引用,以便不创建该对象的额外副本。 如果不应该使用my_function来更改struct数据,则可以将参数标记为const struct ComicInfo&

调用:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM