【问题标题】:How can I pass this structure into the available functions?如何将此结构传递给可用函数?
【发布时间】:2018-04-12 10:20:51
【问题描述】:

我需要帮助通过一个函数传递一个结构来收集并打印出它的相应信息。当我尝试运行下面的代码时,编译器返回我的函数参数太多。

#include <iostream>
using namespace std;
int num;
void getInput();
void classBank();

struct Record
    {
        string fname, sname;
        int marks, indexNum;
        double average;
    };


int main()
{


    Record student;
    getInput();
    classBank(student);

}


void getInput()
{
    cout<<"How many people are you dealing with: ";
    cin >> num;
}

void classBank(struct student)
{

for(int i = 1; i < num; i++)
    {
       cin >> student[i].fname;
       cin >> student[i].sname;
       cin >> student[i].marks;
       cin >> student[i].indexNum;
       cin >> student[i].average;
    }

}

【问题讨论】:

  • 你已经用不同数量的参数前向声明了这个函数。
  • 问题是什么?您的编译器是正确的,您需要修复代码;)
  • 你能帮我解决它吗..@us

标签: c++ function struct


【解决方案1】:

替换

void getInput();
void classBank();

void getInput();
void classBank(Record student);

编辑: 由于以下几个原因,该代码无法正常工作:

  1. 在声明 Record 之前声明使用 struct Record 的函数
  2. 你不明白关键字struct是什么意思
  3. 您将单个元素(没有重载 [])而不是数组传递给 classBank

EDIT2 错字

【讨论】:

  • @IsaacAttuah ...因为Record 在放置前向声明的位置是未知的,所以将Record 的声明移到前向声明之前
  • @Thomas 谢谢我解决了这个问题。我首先重新定位并重新设计了struct Record { string fname[5], sname[5]; int marks[5], indexNum[5]; double average[5]; }; 的结构,然后按照你告诉我的去做。再次感谢!
  • 您对my answer 的编辑被拒绝,因为它不正确。 justify-itemsjustify-self 不适用于 flexbox。甚至在W3C link you provided“适用于:块级框、绝对定位框和网格项”。没有“弹性项目”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-01-15
  • 2012-05-09
  • 1970-01-01
  • 2013-10-19
相关资源
最近更新 更多