Visualizzazione dei risultati da 1 a 10 su 10

Discussione: C uso strutture

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    13

    C uso strutture

    salve... vorrei fare una domanda...
    dovrei memorizzare in un file un elenco di schede....
    ciascuna scheda ( una variabile struct) è composta di diversi campi di tipo semplice ( char e int ) più un vettore i cui elementi sono variabili struct contenenti solo campi semplici( char e int).
    il mio problema è questo:
    come posso inizializzare i campi delle struct di questo vettore ogni volta che viene memorizzata una scheda nuova nel file? ho cercato ovunque ma non son riuscito a risolvere

    grazie

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Come vanno inizializzati? A zero? Se e' cosi' puoi usare la memcpy ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    13
    si... la cosa più importante è inizializzare ad un certo valore il primo e l'ultimo campo(sono stringhe) in modo tale da poterli usare come "chiave di ricerca"....
    la funzione dovrà verificare se il primo campo è vuoto... in tal caso chiederà la compilazione di alcuni campi... se è pieno dovrà passare all'elemento successivo del vettore sin quando non trova un elemento in cui il primo campo è vuoto....

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Originariamente inviato da 50cc
    si... la cosa più importante è inizializzare ad un certo valore il primo e l'ultimo campo(sono stringhe) in modo tale da poterli usare come "chiave di ricerca"....
    Avevi parlato di campi semplici "char e int" ... adesso parli di stringhe ...

    Mostra la struttura, così ci capiamo ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    13
    scusate in effetti son stato un pò superficiale nella spiegazione....
    comunque le struct da elaborare sono di questa forma:

    typedef struct ord {
    char cod [20];
    char descr [30];
    int quant;
    int prezzo;
    char cod_ord[20];
    } Ord ;




    /*struttura della scheda*/
    struct sched {
    char data [20];
    char nome [20];
    int rif_b;
    Ord ordin[10];
    int stato;
    char note [200];
    } scheda;

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Ok ... e come vorresti inizializzarle ? Cosa hai provato a fare tu ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    13
    va bene inizializzarle o come stringhe vuote o con un carattere speciale tipo $ £ %

    io ho provato a fare una funzione tipo questa
    for( i = 0; i <= 10; i++){
    if (scheda.ordin[i].cod == '\0'){
    codice per riempire i vari campi

    printf("vuoi continuare l'inserim? s n");
    scanf("%s", &scelta);
    if (scelta == 'n');
    break
    }
    }

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Se vuoi azzerare tutto con una riga

    memset(&scheda, 0, sizeof(scheda));
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    13
    ok

    quindi con questa funzione anche le stringhe saranno vuote giusto?
    se voglio verificare se un campo stringa è vuoto l'istruzione

    if (scheda.ordin[i].cod == '\0')


    è corretta?

    un ultima domanda..... questa funzione devo scriverla prima dell'apertura del file
    nella funzione che mi scrive una nuova scheda nel file oppure nella funzione main?

    nel main c'è semplicemente uno switch per il menù che richiama le varie funzioni

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Originariamente inviato da 50cc
    se voglio verificare se un campo stringa è vuoto l'istruzione

    if (scheda.ordin[i].cod == '\0')
    No ... cod e' una stringa C, quindi

    if (strlen(scheda.ordin[i].cod) == 0)

    un ultima domanda..... questa funzione devo scriverla prima dell'apertura del file
    nella funzione che mi scrive una nuova scheda nel file oppure nella funzione main?
    Devi scriverla all'inizio del tuo programma, quando ti serve azzerare tutta la struttura.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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.