Registrazione su file in C

di il
6 risposte

Registrazione su file in C

Salve a tutti, avrei bisogno di un piccolo consiglio, veloce veloce, dovrei scrivere un blocco di codice relativo alla registrazione di un nuovo utente, e questa registrazione vorrei memorizzarla su un file csv, solo che non ho idea su come si faccia.

6 Risposte

  • Re: Registrazione su file in C

    Provaci e vediamo dove sbagli ...
  • Re: Registrazione su file in C

    Con quello che ho scritto succede che anche inserendo il carattere EOF, non mi fa terminare la registrazione.
    Scusate, sono alle prime armi.

    
    int registrazione()
    {
    	utente utente;
    	FILE *sorgente;
    	if ((sorgente=fopen("user.csv","w"))==NULL)
    		puts("Il file non può essere aperto.\n");
    	else
    	{
    		puts("\nEnter the name:");
    		fscanf(sorgente, "%s" , utente.nome);
    		puts("Inserisci cognome:");
    		fscanf(sorgente, "%s" , utente.cognome);
    		puts("Inserisci email:");
    		fscanf(sorgente, "%s" , utente.email);
    
    		while(!feof(stdin))
    		{
    			fprintf(sorgente, "%s\n", utente.nome);
    			scanf("%s", utente.nome);
    			fprintf(sorgente, "%s\n", utente.cognome);
    			scanf("%s", utente.cognome);
    			fprintf(sorgente, "%s\n", utente.email);
    			scanf("%s", utente.email);
    		}
    	}
    	fclose(sorgente);
    system("PAUSE");
    return 0;
    }
    
  • Re: Registrazione su file in C

    Non usare quel metodo. Indica che l'input sarà concluso se si inserisce qualcosa (ad esempio, un * ) come nome. Se il nome è uguale al carattere scelto (confronta con strcmp essendo una stringa) e termina, altrimenti ripeti.
  • Re: Registrazione su file in C

    Ho scritto questa alternativa, secondo te è giusta?
    
    int registrazione()
    {
    	utente utente;
    	FILE *sorgente;
    	if ((sorgente=fopen("user.csv","w"))==NULL)
    		puts("Il file non può essere aperto.\n");
    	else
    	{
    		puts("\nInserisci nome:");
    		scanf("%s", utente.nome);
    		puts("Inserisci cognome:");
    		scanf("%s", utente.cognome);
    		puts("Inserisci email:");
    		scanf("%s", utente.email);
    	}
    	fprintf(sorgente, "%s,%s,%s", utente.nome, utente.cognome, utente.email);
    	fclose(sorgente);
    return 0;
    }
  • Re: Registrazione su file in C

    Se usi ripetutamente questa funzione, il file verrà cancellato ogni volta che lo apri. Devi aprilo in append.
  • Re: Registrazione su file in C

    Ok, grazie mille per l'aiuto
Devi accedere o registrarti per scrivere nel forum
6 risposte