转换结构时出错

时间:2014-02-03 00:16:16

标签: c++ function struct compiler-errors

我正在尝试读取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;
}

2 个答案:

答案 0 :(得分:0)

问题在于ScanInFileOutputfile的声明表示他们将struct single_info作为参数类型。看起来你的意思是struct single_info*(这与你的定义相符)。无论代码试图调用您的函数,只能查看声明并尝试传递single_info*,即使它只要求single_info

请注意,在C ++中不需要将struct放在结构标识符之前。

答案 1 :(得分:0)

是的,这是原型。它需要与函数本身完全相同。