Bonjour tout le monde,
j'ai un problème pour lire une chaïne de caractères au clavier. J'explique:
j'ai un projet dans lequel je dois implémenter une fonction qui permet de faire une recherche de disque par artiste.
l'utilisateur rentre donc le nom de l'artiste et le programme affiche la liste de ses disques
pour l'instant, je fais:
char* art=malloc(100*sizeof(char));
printf("\nnom de l'artiste à rechercher???\n" );
while(getchar()=='\n');
gets(art);
printf("\nresultat:%s",art);
maintenant, un aperçu de mon terminal:
nom de l'artiste à rechercher???
The Cure
resultat:he Cure
vous remarquerez que la première lettre de la chaine a été sucrée, ce qui m'embête un peu à vrai dire...
Alors, j'ai cherché un peu, et j'ai vu beaucoup de messages disant que la fonction gets est buggée et qu'il ne faut pas l'utiliser
d'ailleurs, quand je compile, mon terminal me met un warning:
liouan@liouan-laptop:~/P2_Denoyelle/code_linux$ make
gcc -c -g -Wall -pedantic main_etu.c
gcc -o main_etu cddb.o list.o main_etu.o
main_etu.o : Dans la fonction "menu"home/liouan/P2_Denoyelle/code_linux/main_etu.c:175: AVERTISSEMENT: the `gets' function is dangerous and should not be used.
Alors je veux bien qu'elle "should not be used" mais dans ce cas, je fais quoi? vous une autre fonction qui fait la même chose? (j'ai cherché mais n'ai pas trouvé. De plus, je précise que mon code est en C, pas en C++)