Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 26
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2011
    residenza
    bergamo
    Messaggi
    1,027

    c++ ricercare un valore contenuto da struct

    buongiorno,

    sto cercando di fare un esercizio che avevo postato giorni fa, mi è stato suggerito di studiarmi le strutture, così ho fatto, dopo aver letto la guida sulle strutture mi sono posto una domanda:

    io ho una struct per esempio contenente diversi vettori
    dopodichè per esempio un vettore di nome: nomi[30] indica che ho trenta nomi appunto che io vado ad inserire con un for, ma se poi volessi inserire il nome per esempio: cout<<"inserisci un nome: ";cin>>nome;
    così io inserisco il nome ecco tale nome inserito è anche contenuto dentro nomi[30] non so in quale posizione però e dovrei andare a ripescarlo, come posso fare?

  2. #2
    Mi sa che hai fatto confusione rispetto a quanto ti era stato detto: l'idea non era fare una struct contenente tanti vettori, ma fare un vettore contenente tante struct (ogni struct rappresenta un singolo "record").

    Il fatto poi che tu faccia cin>>nomi mi fa pensare che tu abbia dichiarato nomi come un array non di stringhe, ma di char.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2011
    residenza
    bergamo
    Messaggi
    1,027
    allora non ho capito bene, nel senso non riesco a capire il ragionamento, me lo spiegheresti meglio?

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Infatti ... ti avevo suggerito di usare le strutture in modo da creare un

    vettore di strutture

    che risolvesse il tuo problema ...

    La struttura dei dati del singolo nominativo l'hai individuata ? Ce la mostri ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Originariamente inviato da passasooz
    allora non ho capito bene, nel senso non riesco a capire il ragionamento, me lo spiegheresti meglio?
    L'idea è che una struct raggruppa campi di vario tipo, e alla fine è la struct "completa" che rappresenta il tuo individuo. Ad esempio, potrai avere una struct Persona che contiene i campi nome, cognome, età, eccetera; una singola variabile di tipo Persona quindi rappresenta una persona con i vari attributi detti sopra, un vettore di Persona può essere usato come archivio per memorizzare i dati di tante persone.
    Amaro C++, il gusto pieno dell'undefined behavior.

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2011
    residenza
    bergamo
    Messaggi
    1,027
    ecco infatti io pensavo appunto,
    metto i dati di ogni singola persona dentro una struct
    però le persone sono trenta
    quindi io posso fare una cosa del tipo struct persona[30]{........} ?

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Un vettore di struct ... non solo puoi ma devi farlo ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #8
    Normalmente prima dichiari la struct Persona, quindi dichiari l'array:
    codice:
    struct Persona
    {
       ...
    };
    
    Persona persone[30];
    (tra l'altro, lavorando in C++ la cosa più comoda sarebbe usare un std::vector<Persona> invece di un array di dimensioni fissate, ma mi sa che è un po' prematuro se stai vedendo adesso per la prima volta le struct )
    Amaro C++, il gusto pieno dell'undefined behavior.

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2011
    residenza
    bergamo
    Messaggi
    1,027
    se faccio così come hai detto tu MItaly poi le persone le inserisco dentro persone[30] ?

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2011
    residenza
    bergamo
    Messaggi
    1,027
    allora io ho fatto così:

    codice:
    #include <iostream>
    using namespace std;
    int main(){
        struct dipendente
        {
               int eta[30];
               string nomi[30],cognomi[30],mansioni[30],cf[30];
               float stipendi[3];
        };
        dipendente persone[30]; 
    	for(int i=0,z=1;i<2,z<3;i++,z++){
    		cout<<"inserisci nome del "<<z<<" dipendente\n";
    		cin>>persone[i].nomi[i];
    		cout<<"inserisci cognome del "<<z<<" dipendente\n";
    		cin>>persone[i].cognomi[i];
    		cout<<"inserisci mansione del "<<z<<" dipendente\n";
    		cin>>persone[i].mansioni[i];
    		cout<<"inserisci eta del "<<z<<" dipendente\n";
    		cin>>persone[i].eta[i];
    		cout<<"inserisci codice fiscale del "<<z<<" dipendente\n";
    		cin>>persone[i].cf[i];
    		for(int x=0,y=1;x<12,y<13;x++,y++){
                    cout<<"inserisci lo stipendio del "<<y<<" mese\n";
                    cin>>persone[x].stipendi[x];
                    }
    	}
    	system("pause");
    	return 0;
    }
    e sembra funzionarmi, ovvero l'inserimento avviene

    secondo voi ho sbagliato qualcosa magari non me ne sono accorto?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.