我正在尝试读取lastnames firstnames和ssn的大量数据集。当我试图指向我的结构时,它说它试图将我的single_info结构从individualf转换为singleinfo ...
#include<iostream>
#include<fstream>
#include<cstdlib>
#include<string>
using namespace std;
struct single_info {
string firstnames[6000];
string lastnames[6000];
string socialsecurity[6000];
double gpa;
};
void ScanInFile(istream &, struct single_info, int *total);
void Outputfile(ostream &, struct single_info, int *total);
这是我的结构
以下是我的功能,由于某些原因我收到错误:无法转换'&amp; individualf'从'single_info *'到'single_info'
void ScanInFile(istream &inputfile, struct single_info *individualf, int *total)
{
int i=0;
while(!inputfile.eof()){
inputfile >> individualf->socialsecurity[i];
inputfile >> individualf->firstnames[i];
inputfile >> individualf->lastnames[i];
i++
}
*total = i;
}
void Outputfile(ostream &outputfile, struct single_info *individualf, int *total)
{
for(int i=0; i < *total; i++){
outputfile << individualf->socialsecurity[i];
outputfile << individualf->firstnames[i];
outputfile << individual->lastnames[i];
}
outputfile << endl;
}
答案 0 :(得分:0)
问题在于ScanInFile
和Outputfile
的声明表示他们将struct single_info
作为参数类型。看起来你的意思是struct single_info*
(这与你的定义相符)。无论代码试图调用您的函数,只能查看声明并尝试传递single_info*
,即使它只要求single_info
。
请注意,在C ++中不需要将struct
放在结构标识符之前。
答案 1 :(得分:0)
是的,这是原型。它需要与函数本身完全相同。