Le struct

di il
2 risposte

Le struct

Ciao a tutti!
Sto cercando di imparare le struct ma in un esercizio che ho trovato non so come implementare in programma senza incongruenze negli operatori.
L'esercizio chiede di realizzare un programma su una lista di cose da fare elettronica
#include <iostream>

using namespace std;

struct  Lista
{  int numcose =0;
struct cosa_da_fare
{
    char descrizione [20];
    bool done = true;
}specifico;
};
int main()
{
    Lista lista;
    cout << " inserisci il numero di cose da fare:\n";
    cin >> lista.numcose;
    int c = lista.numcose;
    for (int i=0;i<lista.numcose;i++)
    {
        cout<< " inserisci una descrizione delle cose da fare: \n";
        cin >> lista[i].specifico.descrizione; // ecco il mio problema
    }
     
        cout << "i punti della lista sono : " << lista.numcose << endl;
      for (int i=0;i<lista.numcose;i++)  
        cout << "e sono : " << lista[i].specifico.descrizione << endl;


        char risposta[2];
     cout << "vuoi inserire un nuovo elemento nella lista?\n";
     cin >> risposta;
     if (risposta == "si")
     {
        lista.numcose += 1;
        cin >> lista.specifico.descrizione;
     }
    else 
    {
        cout << " perfetto ! continuiamo... \n";
    }


    char *p = lista.specifico.descrizione;
    p[20] = '\0';
    int a =0;
    for (int i = 0; i<lista.numcose; i++)
    {
        cout << lista.specifico.descrizione[i] << endl;
    cout << "Inserisci un numero: 0 per DA FARE, 1 per FATTO e 2 per eliminare: \n";
    cin >> a;
        if (a==0)
        {lista.specifico.done = false;
        cout << lista.specifico.descrizione << endl;
        cout << "da fare \n";
        }
        else if(a==1)
        {
            lista.specifico.done = true;
          cout << lista.specifico.descrizione << endl;
           cout << "fatto \n";
        }
        else if ( a == 2)
        {
        cout << lista.specifico.descrizione << endl;
            cout << "eliminato dalla lista\n";
           delete[] p;
        }
    
    }
    return 0;

}

2 Risposte

  • Re: Le struct

    ... e quindi ....?

    Stai cercando di implementare una "lista" con le struct, che dovrebbero essere
    
    struct cosa_da_fare
    {
    	char descrizione[20];
    	bool done = true;
    	struct cosa_da_fare *prossima;
    };
    
    struct  Lista
    {
    	int numcose;
    	struct cosa_da_fare *elencocose;
    };
    
    ma forse, prima delle liste, faresti bene a fare esperienza ancora con le struct.
    La lista prevede l'uso dei "puntatori a struct" che dovresti saper usare.


    P.S. Anche in seguito, se usi un array di char per contenere la parola "si", questa deve essere di 3 caratteri e non 2 (per il terminatore); e il confronto lo fai con la funzione strcmp. Al contrario, se usi le string del C++ allora è un'altra storia.
    Devi rivedere anche queste nozioni, prima delle struct
  • Re: Le struct

    Oddio grazie mille... eh si anche io immaginavo c'entrassero i puntatori.
    Purtroppo li devo ancora studiare... eh si hai proprio ragione, grazie mille e ciao
Devi accedere o registrarti per scrivere nel forum
2 risposte