J'essaie de créer un petit programme de carnet d'adresses en C où les utilisateurs entreraient les informations de contact qui sont stockées dans un fichier texte. Si un utilisateur choisit d'ajouter un nouveau contact, le programme devrait lui demander s'il souhaite en ajouter un autre lorsqu'il aura terminé. J'ai fait une instruction if qui, selon moi, devrait terminer la boucle si elles entrent dans 'n' ou continuer pour un autre contact si elles écrivent quelque chose d'autre. Cependant si l'utilisateur tape 'y' (ou n'importe quoi d'autre), il sort toujours après seulement 1 boucle.Do Tandis que la boucle se termine toujours après la première boucle
void new_contact(void){
printf("Ready for new contact\n");
int enter_new_contact = 1;
char first_name[15];
char second_name[20];
char phone_number[12];
char email[50];
char y_n[1];
do{
printf("Enter the contacts first name.\n");
scanf("%s", first_name);
printf("Enter the contacts second name.\n");
scanf("%s", second_name);
printf("Enter the contacts phone number.\n");
scanf("%s", phone_number);
printf("Enter the contacts email.\n");
scanf("%s", email);
printf("%s\t%s\t%s\t%s\n", first_name, second_name, phone_number, email);
printf("Would you like to add another contact?\n");
scanf("%s", y_n);
printf("%s\n", y_n);
if(strcmp(y_n, "n")==0){
enter_new_contact=0;
}
}while(enter_new_contact==1);
}
Merci d'avance!
Première chose: fixer un comportement non défini, comme 'char y_n [1], 'étant pas assez grand pour contenir un caractère et un terminateur null. –
'char y_n [1];': ce tampon char est trop petit. Il ne peut pas contenir de chaîne sensible. Vous avez besoin d'espace pour le terminateur null. Et que se passe-t-il lorsque l'utilisateur entre "oui" ou "non"? –