Mon problème est que mon programme affiche : " Nom : " puis je suis censé pouvoir rentrer mon nom mais ça passe la ligne du gets pour afficher " Prenom : ", savez-vous m'aider ? Voici mon code :
Cette fonction est tellement pourrie et dangereuse que le dernier standard C l'a carrément bannie. Voir du côté de fgets. N'utilises pas cette horreur, c'est la porte ouverte au buffer overflow immédiatement.
Ok j'ai compris que je ne dois pas utiliser gets mais pourquoi utiliser fgets alors, quel est son avantage et comment fonctionne-t-il ? Car fgets lit les caractère d'un fichier et non de ce que la personne tape sur le clavier non ?
Et donc à la place de str je devrais mettre " ligneTab[j].nom " ?
En fait j'ai compris mais je ne vois pas par quoi je devrais remplacer les valeurs que tu m'as donnés ( par rapport à mon code )
Je viens d'essayer en faisant comme ça :
printf("\nNom: ");
fgets(ligneTab[j].nom,500,stdin);
printf("\nPrenom: ");
fgets(ligneTab[j].prenom,500,stdin);
printf("\nCode Postal de la ville : ");
scanf("%d",&ligneTab[j].CP_ville);
fflush(stdin);
Mais cela me fait toujours la même chose et cela ne m'affiche pas d'erreur...
Posez vos questions ou discutez informatique, sur le Discord NaN | Tuto : Preuve de programmes C
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent