【发布时间】:2017-02-07 14:52:12
【问题描述】:
我想使用来自用户的输入创建多个结构对象
例如:
我想接受用户值n 并创建n 数量的对象并将这些对象传递给我初始化变量的函数。
#include <iostream>
#include<string>
#include "stdio.h"
using namespace std;
struct student
{
int roll_no;
char name[20];
};
void get_input(student p[],int n1)
{
for(int i=1;i<=n1;i++)
{
cout<<"Enter Roll Number ";
cin>>p[i].roll_no;
cout<<"\n Enter Name of the student: ";
cin>>p[i].name;
}
}
int main()
{
int n;
cout<<"How many student details would you want to enter: ";
cin>>n;
//Want to create number of object based on input n
student p[n];
get_input(student p[],n);
return 0;
}
【问题讨论】:
-
C++ 中不允许使用可变长度数组。请改用
std::vector<student>。 -
@Fureeish 那么你可能正在使用一些非标准的编译器扩展。
-
@Fureeish 您的编译器可能支持它作为语言扩展。如果您使用不支持此类扩展的编译器,它将根本无法工作。
-
@Fureeish 那些不是编译器。他们可能都在使用默认支持可变长度数组的 gcc。
-
@Fureeish 如果您将标准设置为
-std=c++14而不是-std=gnu-c++14,您至少应该收到有关使用非标准扩展的警告。
标签: c++ function object struct parameters