Visualizzazione dei risultati da 1 a 6 su 6

Discussione: [C] rubrica

  1. #1

    [C] rubrica

    ciao a tutti, sbirciando nelle guide-esempi di questo forum, mi sono soffermato in un codice di una rubrica. davvero ben fatto anche se mi pare abbastanza macchinoso.
    rileggendolo non riesco a capire il significato di un pezzo di codice:

    struct elemento *leggiDaFile(struct elemento *p)
    462 { // leggiDaFile - OPEN
    463
    464 // Dichiaro le variabili
    465 t_contatto daInserire;
    466 t_contatto vuoto; // elemento vuoto
    467 struct elemento *punt = p;
    468 char linea[500]; // stringa per l'acquisizione
    469 int index=0; // inizializza l'indice
    470
    471 // Apre il file
    472 FILE *stream = fopen("rubrica.txt","rt");
    473
    474 // Salvo la lista di contatti
    475 while(fgets(linea, 500, stream) != NULL)
    476 { // WHILE - OPEN
    477
    478
    479 index = strcspn(linea, ",");
    480 strncpy(daInserire.nome, linea, index);
    481 substring(daInserire.nome, daInserire.nome, 0, index-1);
    482 substring(linea, linea, index+1, strlen(linea));
    483 index = strcspn(linea, ",");
    484 strncpy(daInserire.cognome, linea, index);
    485 substring(daInserire.cognome, daInserire.cognome, 0, index-1);
    486 substring(linea, linea, index+1, strlen(linea));
    487 index = strcspn(linea, ",");
    488 strncpy(daInserire.telefono, linea, index);
    489 substring(daInserire.telefono, daInserire.telefono, 0, index-1);
    490 substring(linea, linea, index+1, strlen(linea));
    491 index = strcspn(linea, ",");
    492 strncpy(daInserire.email, linea, index);
    493 substring(daInserire.email, daInserire.email, 0, index-1);
    494 substring(linea, linea, index+1, strlen(linea));
    495 strcpy(daInserire.sitoweb, linea);
    496 substring(daInserire.sitoweb, daInserire.sitoweb, 0, strlen(daInserire.sitoweb)-2);
    497
    498 // Aggiunge l'elemento alla lista
    499 p = punt;
    500 punt = (struct elemento *)malloc(sizeof(struct elemento));
    501 punt->inf = daInserire;
    502 punt->pun = p;
    503
    504 // azzera il valore di daInserire
    505 daInserire = vuoto;
    506
    507 } // WHILE - CLOSE
    508
    509 // Chiude il file
    510 fflush(stream);
    511 fclose(stream);
    512
    513 // Esce dalla funzione e restituisce la lista
    514 return(punt);
    515
    516 } // leggiDaFile - CLOSE

    In particolare la stringhe strncpy e substring...qualcuno me ne sa parlare.
    grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    225
    http://www.cplusplus.com/reference/c...tring/strncpy/
    codice:
    char * strncpy ( char * destination, const char * source, size_t num );
    strncpy copia i primi num caratteri di source in destination, dove destination deve avere una dimensione di almeno num caratteri per poterli ricevere.

    substring non è una funzione standard .

  3. #3
    ciao e grazie! che significa che non è una funziona standard??

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    225
    che è stata definita da colui che ha scritto il codice che hai riportato.
    Se hai tutto il sorgenti troverai anche la definizione e la implementazione di questa funzione

    ciao
    sergio

  5. #5
    Originariamente inviato da mrjack85
    ciao e grazie! che significa che non è una funziona standard??
    ciao sarà pure strano, ma io non trovo niente nel codice che faccia riferimento a substring.

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    225

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.