【发布时间】:2021-07-18 00:48:39
【问题描述】:
你好,我有一个练习,他们给了我这个结构:
enum Sexe { INCONNUE=0, MASCULIN=1, FEMININ=2};
struct Personne {
int numero;
char nom[10];
Sexe sexe;
};
我需要创建一个指针并为其赋值。所以我做了这个功能:
void Init() {
Personne *p;
string sexe;
Sexe s;
string n;
string nom;
char name[10];
cout << "Choisissez le numero de la personne";
cin >> n;
cout << "Choisissez le nom de la personne";
cin >> nom;
cout << "Choisissez le sexe de la personne";
cin >> sexe;
for (int i = 0; i < nom.length(); i++){
name[i] = nom[i];
}
if (sexe == "1" || sexe == "Masculin" || sexe == "masculin" || sexe == "MASCULIN") {
s = Sexe::MASCULIN;
} else if (sexe == "1" || sexe == "Feminin" || sexe == "feminin" || sexe == "FEMININ") {
s = Sexe::FEMININ;
} else {
s = Sexe::INCONNUE;
}
Personne join_p{stoi(n),name,s};
p = &join_p;
}
但是我有这个错误,我不明白为什么以及如何解决它:
error: array must be initialized with a brace-enclosed initializer
Personne join_p{stoi(n),name,s};
我试图将括号放在不同的地方,就像他们在我的课程或其他网站上所说的那样,但它不想工作
【问题讨论】:
标签: c++ arrays struct compiler-errors initialization