Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - substring' was not declared in this scope
Forum - C/C++ - substring' was not declared in this scope

Avatar
giocala88 (Normal User)
Expert


Messaggi: 248
Iscritto: 23/04/2008

Segnala al moderatore
Postato alle 16:38
Venerdė, 25/04/2008
Ciao raga vorrei capire cosa sbaglio ma soprattutto perchč mi da un errore del genere:

In function `elemento* leggiDaFile(elemento*)':|
`substring' was not declared in this scope|
||=== Build finished: 1 errors, 0 warnings ===|

cosa significa???
qualcuno di voi sa correggerlo nell'implementazione???...GRAZIE e CIAO!!!

// Inclusione delle librerie
#include <stdio.h>
#include <stdlib.h>
#include <string.h>



// Creo la struttura per contenere il database
      typedef struct
      {
          char cognome[50];
          char matricola[5];
          char voto[3];

      } t_database;

// Creo la struttura per creare la lista
     struct elemento
     {
        t_database inf;
        struct elemento *pun;
     };

// Prototipi delle funzioni
void visualizzaContatto(struct elemento* p);
struct elemento *leggiDaFile(struct elemento *p);
void salvaSuFile(struct elemento *p);

// Funzione principale - MAIN

int main()
{
    // dichiaro la variabile scelta e la lista vuota
    int scelta;
    struct elemento *lista = NULL;

    // Visualizzo i contatti presenti
    visualizzaContatto(lista);

    // Leggo i contatti da File
    lista = leggiDaFile(lista);

    // Salvo i contatti su File
    salvaSuFile(lista);


    return 0;

}

/* Visualizza i contatti presenti */
  void visualizzaContatto(struct elemento* p)
  { // visualizzaContatto() - OPEN

       if (p == NULL)
       { // IF - OPEN

        /* Se non ci sono contatti lo stampo a video */
         printf ("\nNessun contatto presente\n");

       }

        else
        { // ELSE
            /* Stampo il primo contatto presente */

            printf (" COGNOME:\n%s\n", p->inf.cognome);
            printf (" MATRICOLA:\n%s\n", p->inf.matricola);
            printf (" VOTO:\n%s\n", p->inf.voto);

        }// IF - CLOSE

        while (p != NULL)
        { // WHILE - OPEN

          /* Stampo gli altri contatti */

            printf (" COGNOME:\n%s\n", p->inf.cognome);
            printf (" MATRICOLA:\n%s\n", p->inf.matricola);
            printf (" VOTO:\n%s\n", p->inf.voto);

           // Leggo l'elemento successivo
            p = p->pun;
        }// WHILE - CLOSE


  } // visualizzaContatto() - CLOSE



/* Leggo i contatti dal file database.txt */

     struct elemento *leggiDaFile(struct elemento *p)
     { // leggiDaFile - OPEN

       // Dichiaro le variabili
       t_database daInserire;
       t_database vuoto; // elemento vuoto
       struct elemento *punt = p;
       char linea[500]; // stringa per l'acquisizione
       int index=0; // inizializza l'indice


       // Apre il file
       FILE *file_database = fopen("database.txt","rt");

       // Salvo la lista di contatti
       while(fgets(linea, 500, file_database) != NULL)
       { // WHILE - OPEN

           index = strcspn(linea, ",");

           strncpy(daInserire.cognome, linea, index);
           substring(daInserire.cognome, daInserire.cognome, 0, index-1);
           substring(linea, linea, index+1, strlen(linea));
           index = strcspn(linea, ",");

           strncpy(daInserire.matricola, linea, index);
           substring(daInserire.matricola, daInserire.matricola, 0, index-1);
           substring(linea, linea, index+1, strlen(linea));
           index = strcspn(linea, ",");

           strncpy(daInserire.voto, linea, index);
           substring(daInserire.voto, daInserire.voto, 0, index-1);
           substring(linea, linea, index+1, strlen(linea));

           // Aggiunge l'elemento alla lista
            p = punt;
            punt = (struct elemento *)malloc(sizeof(struct elemento));
            punt->inf = daInserire;
            punt->pun = p;

           // azzera il valore di daInserire
           daInserire = vuoto;
       } // WHILE - CLOSE

         // Chiude il file
          fflush(file_database);
          fclose(file_database);

          // Esce dalla funzione e restituisce la lista
          return(punt);
     }// leggiDaFile - CLOSE



/* Salvo i contatti inseriti in un file di nome database_ordinato.txt */
     void salvaSuFile(struct elemento *p)
     { // salvaSuFile() - OPEN

       // Apre il file
       FILE *file_database_ordinato = fopen("database_ordinato.txt","w");

       // Salvo la lista di contatti
       while (p != NULL)
       { // WHILE - OPEN

         // Scrive sul file
         fprintf(file_database_ordinato, "%s,%s,%s\n", p->inf.cognome, p->inf.matricola, p->inf.voto);
         // legge l'emento successivo
         p = p->pun;

       } // WHILE - CLOSE

       // Chiude il file
       fflush(file_database_ordinato);
       fclose(file_database_ordinato);

       // Esce dalla funzione

     }// salvaSuFile() - CLOSE


Ultima modifica effettuata da giocala88 il 25/04/2008 alle 16:38
PM Quote
Avatar
gantonio (Normal User)
Guru^2


Messaggi: 1532
Iscritto: 09/09/2007

Segnala al moderatore
Postato alle 22:58
Venerdė, 25/04/2008
Ma cosa e'

substring

?

PM Quote
Avatar
giocala88 (Normal User)
Expert


Messaggi: 248
Iscritto: 23/04/2008

Segnala al moderatore
Postato alle 10:55
Sabato, 26/04/2008
kiedevo a voi quale fosse il problema e se si potesse risolvere in qualke altro modo qst substring....fatemi sapere...CIAO

PM Quote
Avatar
FHF93 (Ex-Member)
Pro


Messaggi: 132
Iscritto: 13/11/2007

Segnala al moderatore
Postato alle 11:51
Sabato, 26/04/2008
mmm .. mi sa tanto della rubrica di esempio di html.it ... facendo control-F con firefox ho notato solo che richiami questa substring , che da come si vede č una funzione , ma non hai scritto da nessuna parte nč il prototipo , nč la funzione stessa , come dice gantonio ...

PM Quote