[英]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.