Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    [C] Leggere dati rubrica da file

    Salve a tutti, ho un piccolo problema,
    dato questo file di testo :

    Mario Rossi 1234567890
    Luca Verdi 0987654321
    Michele Gialli 1234509876

    Dovrei salvare i dati negli appositi array, ovvero :
    Nella prima posizione dell'array dei nomi ci sarà : "Mario",
    nella seconda : "Luca", nella terza : "Michele"...
    La stessa cosa per i cognomi e per i numeri di telefono,
    come posso fare ?

    Grazie a tutti

  2. #2
    Ciao,
    il procedimento da seguire è proprio quello descritto da te.. Leggi il nomee lo inserisci nel vettore dei nomi, leggi il cognome e lo inserisci nel vettore dei cognomi , leggi il numero e lo inserisci nel vettore dei numeri e cosi via..;Protesti andare a vedere la fscanf qui:http://www.cplusplus.com/reference/c...cstdio/fscanf/;potrebbe tornare utile.. prova a scrivere qualcosa e vediamo che tipo di problema hai
    Ciao

  3. #3
    Allora, ho fatto questo programmino, così in cinque minuti,
    lo compilato e non mi da errori...

    codice:
    #include <stdio.h>
    #include <stdlib.h>
    int main ()
    {
         char parole [9] [10];
         int count = 0;
         int i;
         FILE *stream = fopen("parole.txt", "r");
         if(stream == NULL)
         {
                    printf("Errore nell'apertura del file");
         }
         else
         {
             while(!feof(stream))
             {
                                 fscanf(stream, "%s %s %s %s %s %s %s %s %s %s", parole[0], parole[1], parole[2], parole[3], parole[4], parole[5], parole[6], parole[7], parole[8], parole[9]);
                                 count++;
             }
         }
         for(i=0;i<10;i++)
         {
                          printf("%s\n",parole[i]);
         }
         fclose(stream);
         system("PAUSE");
    }
    Solo che il procedimento con la fscanf mi sembra un po' troppo lungo...

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Tu devi leggere 3 valori nel ciclo (dato che tanti ce ne sono nella riga) ... altrimenti a cosa serve il ciclo?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Quindi, così è giusto ?
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    int main ()
    {
        char Nome [2] [10];    
        char Cognome [2] [10];    
        char Telefono [2] [10];
        int Count = 0;
        int i;
        FILE *Stream = fopen ("Contatti.txt", "r");
        if (Stream == NULL)
        {
                   printf ("Errore nell'apertura del file");
        }
        else
        {
            while(!feof (Stream))
            {
                                fscanf(Stream, "%s %s %s", Nome [Count], Cognome [Count], Telefono [Count]);
                                Count++;
            }
        }
        for (i = 0 ; i < 10 ; i++)
        {
                         printf ("%s %s %s\n", Nome [i], Cognome [i], Telefono [i]);
        }
        fclose (Stream);
        system ("PAUSE");
    }

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Scusa ... ma tu non provi a compilare ed eseguire il tuo codice?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Scusa, ho fatto...

    codice:
    #include <stdio.h>
    #include <stdlib.h>
    int main ()
    {
        char Nome [2] [10];    
        char Cognome [2] [10];    
        char Telefono [2] [10];
        int Count = 0;
        int i;
        FILE *Stream = fopen ("Contatti.txt", "r");
        if (Stream == NULL)
        {
                   printf ("Errore nell'apertura del file");
        }
        else
        {
            while(!feof (Stream))
            {
                                fscanf(Stream, "%s %s %s", Nome [Count], Cognome [Count], Telefono [Count]);
                                Count++;
            }
        }
        for (i = 0 ; i < 10 ; i++)
        {
                         printf ("%s %s %s\n", Nome [i], Cognome [i], Telefono [i]);
        }
        fclose (Stream);
        system ("PAUSE");
    }
    Grazie a tutti

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Avrai un bel po' di errori eseguendo questo codice ... non lo hai affatto provato ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Come dovrei fare llora ?
    Mi potreste correggere il codice,
    mi sono accorto che non mi stampa le cose giuste il mio metodo...

    Grazie a tutti

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Se dimensioni l'array con 2 righe, non ne puoi leggere 3 ...

    E se ogni riga degli array è di massimo 9 caratteri+1, hai problemi a leggere stringhe più lunghe ...

    Correggi, ricompila e controlla ...
    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 © 2025 vBulletin Solutions, Inc. All rights reserved.