C++指向在另一个结构内部的结构中定义的变量(由用户填充)
C++ Pointing a variable (to be filled by the user) that is defined in a struct which is inside another struct
我正在处理列表。我想执行在另一个结构中的结构中定义的变量插入(用户端)。
我的部分代码是这样的:
#include <iostream>
#include <string>
using namespace std;
// Global variables
struct gioco {string piattaforma;
string titolo;
string genere;
string sviluppatore;
string publisher;
struct data {int giorno;
int mese; // Formato data GG/MM/AAAA
int anno; };
bool disponibile;
gioco * recordSuccessivo; };
// Prototypes
bool stampaLista (gioco *);
gioco * aggiungiGioco (gioco *);
// MAIN Function
int main (void)
{// Local Variables (MAIN)
char sceltaMenu = ' ';
gioco * puntatoreTesta = NULL;
gioco * puntatoreCoda = NULL;
gioco * puntatoreDeposito = NULL;
// [more code]
stampaLista (puntatoreTesta);
// [more code + ASCII menu]
cin>>sceltaMenu;
switch (sceltaMenu)
{case '1':
puntatoreDeposito = aggiungiGioco (puntatoreTesta);
break;
// [more cases + default]
}
return 0;
}
// Other Functions
bool stampaLista (gioco * puntatoreTesta)
{cout<<endl<<"PIATTAFORMA"<<"t"<<"TITOLO"<<"t"<<"GENERE"<<"t"<<"SVILUPPATORE"<<"t"<<"PUBLISHER"<<"t"<<"DATA DI USCITA"<<"t"<<"DISPONIBILE"<<endl<<endl;
if (puntatoreTesta != NULL)
{gioco * puntatoreDeposito = NULL;
puntatoreDeposito = puntatoreTesta;
do {cout<<puntatoreDeposito -> piattaforma<<"t"
<<puntatoreDeposito -> titolo<<"t"
<<puntatoreDeposito -> genere<<"t"
<<puntatoreDeposito -> sviluppatore<<"t"
<<puntatoreDeposito -> publisher<<"t"
<<puntatoreDeposito -> gioco.data.giorno<<"/"<<puntatoreDeposito -> gioco.data.mese<<"/"<<puntatoreDeposito -> gioco.data.anno<<"t"
<<puntatoreDeposito -> disponibile<<endl;
puntatoreDeposito++;
} while (puntatoreDeposito != NULL);
return false;
}
else
{cout<<"La lista e' vuota!"<<endl<<endl<<endl;
return true;
}
}
gioco * aggiungiGioco (gioco * puntatoreTesta)
{// Local Variables
gioco * puntatoreNuovo = new gioco;
puntatoreNuovo -> recordSuccessivo = NULL;
cout<<"NUOVO RECORD"<<endl<<endl;
cout<<"Piattaforma:"<<"t";
cin>>puntatoreNuovo -> piattaforma;
cout<<"Titolo:"<<"t";
cin>>puntatoreNuovo -> titolo;
cout<<"Genere:"<<"t";
cin>>puntatoreNuovo -> genere;
cout<<"Sviluppatore:"<<"t";
cin>>puntatoreNuovo -> sviluppatore;
cout<<"Publisher:"<<"t";
cin>>puntatoreNuovo -> publisher;
cout<<"Data di Uscita:"<<endl;
cin>>puntatoreNuovo -> gioco.data.giorno>>puntatoreNuovo -> gioco.data.mese>>puntatoreNuovo -> gioco.data.anno;
return puntatoreNuovo;
}
当我使用语法gioco.data.giorno
/.mese
/.anno
通过使用new node
构造函数指针指向这些嵌套变量来访问这些嵌套变量时,在打印和字段填充函数中,我都会遇到"无效使用struct gioco
"的错误。
这几乎可以肯定是一个语法错误的问题,尽管我看不出解决这个问题的正确方法。关于如何实现我想要实现的目标,有什么建议吗?
您需要以这种方式定义您的结构:
// Global variables
struct gioco {string piattaforma;
string titolo;
string genere;
string sviluppatore;
string publisher;
struct data {int giorno;
int mese; // Formato data GG/MM/AAAA
int anno; } data_field;
bool disponibile;
gioco * recordSuccessivo; };
然后你可以访问它:
gioco* puntatoreNuovo = new gioco;
puntatoreNuovo->recordSuccessivo = NULL;
......
cout<<"Data di Uscita:"<<endl;
cin>>puntatoreNuovo->data_field.giorno >> puntatoreNuovo->data_field.mese >> puntatoreNuovo->data_field.anno;
......
相关文章:
- 在类构造函数中使用结构变量
- 在类构造函数中定义结构变量的参数
- 为什么我们再次从结构对象创建结构变量?
- 如何从其他结构访问受保护的结构变量
- 指向结构变量的指针未保存到eeprom
- 为什么我的程序没有更改结构变量中的值?
- 在 CPP 中初始化 typedef 结构变量
- 带有大结构变量的 CUDA 内核函数给出了错误的结果
- 有没有办法初始化不涉及编写构造函数的新结构变量?
- 结构变量查询
- 在结构声明的分号之前声明的结构变量是否为全局变量
- C++ 如何访问指针的结构变量
- 使用指向结构变量成员的指针访问该结构的成员的地址
- 为什么在 sizeof() 函数中与 * 运算符一起使用和不使用 * 运算符时,指向结构变量的指针大小会有所不同?
- 如何在类别内的类中访问类中的结构变量
- 尝试使用文本文件初始化多个结构变量
- 从类对象到结构变量的 memcpy
- C++结构变量初始化时出现问题
- 如何在 C++ 中使用带有类/结构变量的列表
- 动态数组添加元素而不创建结构变量/对象