PROBLEMA File In C

davicos

Utente Attivo
226
11
Salve a tutti,
vorrei fare un programma che, tramite file, legga dei nomi, che possono essere anche ripetuti, e che li salvi in un vettore.

esempio file:

Davide
Luigi
Martina
Davide
Alessandro
Marco
Alessandro
......
....

il numero di righe non è noto a priori ma è noto quanti nomi diversi al massimo sono presenti.

Vorrei che il programma alla fine mi dica quanti nomi ci sono, in questo esempio sono 5.
La mia difficoltà sta proprio nel salvare i nomi man mano. Il programma che ho fatto mi confronta il nome successivo a quello precedente ma si capisce bene che non funziona.
Come fare?
Grazie!
 

Giacky91

Utente Attivo
793
84
CPU
Intel Core I7 - 2630QM - 2.0 GHZ
Scheda Madre
Proprietaria
HDD
500GB WD 2.5"
RAM
2 x 2GB Corsair
GPU
GeForce GT540M 1GB
Audio
Integrato
OS
Windows 10 Pro, Kali Linux 2.0
Ciao.
Incomincia a postare il codice che hai scritto, cosi possiamo darti una mano su quello!
inseriscilo con i tag per il codice, cosi è piu leggibile!
 

davicos

Utente Attivo
226
11
C:
#include <stdio.h>
#include <string.h>
#define n 5
#define lun 30
#define max 15
int main(int argc, char* argv[])
{
    char v[n][max+1], nome[max+1], prec[max+1];
    int y=0, riga[lun+1],trovato=0;
 
 
    FILE *f;
    f = fopen("testo.txt", "r");
 
    if(f == NULL)
    {
        printf("errore");
        return (1);
    }
 
    while(fgets(riga, lun, f) != NULL)
    {
  
        printf("%s", riga);
        sscanf(riga,"%s", nome);
  
  
  
        if(strcmp(nome, prec) !=0 || y==0)
        {
            v[n][lun+1] = nome;
            trovato += 1;
        }
  
        strcpy(prec, nome);
        y++;
  
    }
    printf("\n");
    printf("Sono presenti %d nomi diversi", trovato);

return 0;
}


Il codice non funziona anche perchè ho fatto casino con le stringhe.. non le so usare molto bene.
Lo stesso programma lo usato inserendo numeri anzichè stringhe ma comunque il problema di fondo è sempre lo stesso.
Grazie!
 
Ultima modifica:

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili