Salve a tutti. Ho scritto un semplice programma che permette l'inserimento di 4 tipi di dati su un file:
1) Username
2) Password
3) Email
4) Età
Il problema funziona, ma se inserisco un username con lo spazio (es. "Goat Boy"), mi salta direttamente ad Email, senza farmi dare la password. Come mai?
Questo è il codice che ho scritto:
codice:
#include <stdio.h>
#include <stdlib.h>
#define USER_FILE "user.txt"
typedef struct{
char user[30];
char pass[30];
char email[50];
int age;
} user;
int main(void){
FILE *fp;
user u;
if (!(fp=fopen(USER_FILE,"a"))){
printf("Errore\n");
exit(1);
}
printf ("Inseririmento di un nuovo utente: \n\n");
printf ("Username: ");
scanf ("%s",u.user);
printf ("Password: ");
scanf ("%s",u.pass);
printf ("Email: ");
scanf ("%s",u.email);
printf ("Età: ");
scanf ("%d",&u.age);
/* Scrivo i dati sul file */
fprintf(fp, "%s\t%s\t%s\t%d\n", u.user, u.pass, u.email, u.age);
printf("Dati scritti con successo\n");
fclose(fp);
}
Inoltre vorrei sapere una cosa sulla lettura dei file. Ieri ho creato un file .txt con scritti dei numeri, e poi ho creato un programma che mi leggeva ciò che era scritto sul file. Vorrei sapere come mai non mi da i numeri sullo schermo, forse devo scriverli in modo particolare sul file .txt? O ho sbagliato il codice (cosa molto probabile)?
codice:
#include <stdio.h>
#include <stdlib.h>
#define MIO_FILE "prova.txt"
int main(void){
FILE *fp;
fp=fopen(MIO_FILE, "r");
int fclose(FILE *fp);
}
Ringrazio già da ora per la vostra disponibilità