我正在处理列表。我想执行一个在另一个struct里面的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 = '\0';
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;
}
我得到的是&#34;在打印和字段填充函数中无效使用struct gioco
&#34;,因为我使用语法gioco.data.giorno
/ { {1}} / .mese
通过使用.anno
构造函数指针指向它们来访问这些嵌套变量。
这几乎肯定是语法错误的问题,但我看不出正确的方法来解决这个问题。 关于如何实现我想要的任何建议?
答案 0 :(得分:0)
您需要以这种方式定义结构:
-f
然后你可以访问它:
// 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; };