gpt4 book ai didi

c++ - 在结构 C++ 之间传递数组

转载 作者:行者123 更新时间:2023-11-30 01:55:18 25 4
gpt4 key购买 nike

我是 C++ 的新手,我正在处理一个基本问题。下面的代码给出了编译器错误:

    #include <iostream>
using namespace std;

struct contact_info {
long number;
string name;
};

contact_info take(){
contact_info takein[2];

for (int i=0; i<2; i++) {
cout<<"what is the name"<<"\n";
getline(cin,takein[i].name);
cout<<"what is the phone number"<<"\n";
cin>>takein[i].number;
};
return takein;
};

void give(contact_info takein){
cout<<"Name:"<<takein.name<<"\n"<<"Number:"<<takein.number;
};

int main(int argc, const char * argv[])
{
contact_info takein;
takein=take();
give(takein);
return 0;
}

错误来自函数“take”并且是“没有从‘contact_info[2]’到‘contact_info’的可行转换”该代码应该在一个循环中获取两个联系信息,然后将它们打印在屏幕上。我想我需要使用指针将“takein”从“take”函数传递到“main”函数。谁能说我是否可以使用数组而不是指针来修复代码?

最佳答案

#include <iostream>
struct contact_info
{
long number;
string name;
};

void take(contact_info takein[2])
{

for (int i=0; i<2; i++)
{
cout<<"what is the name"<<"\n";
getline(cin,takein[i].name);
cout<<"what is the phone number"<<"\n";
cin>>takein[i].number;
};
};

void give(contact_info takein)
{
cout<<"Name:"<<takein.name<<"\n"<<"Number:"<<takein.number;
};

int main()
{
contact_info takein[2];
take(takein);
for(int i=0;i<2;++i)
give(takein[i]);
return 0;
}

关于c++ - 在结构 C++ 之间传递数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20877913/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com