Difference entre scanf et readline en C

akim -  
 akim -
Bonjour tout le monde j'aimerai savoir quelque différence il y a entre le "scanf" et "le readlin" en langage c.
A voir également:

3 réponses

gardiendelanuit Messages postés 1770 Date d'inscription   Statut Membre Dernière intervention   264
 
Bonjour,
Ca fait un moment que je n'ai plus fait de C mais je crois que readline c'est plus pour lire une ligne dans un fichier texte et scanf pour lire ce que l'utilisateur tape sur la console par exemple.
0
akim
 
en fait que on nous a demandé d'ecrire un programme qui determine si un mot est un palindrome ou pas et que a la place du sacnf on utilise readline . j'ai pu faire le programme avec scanf mais quand je remplace pa readline sa donne rien.
je sais pas donc 'sil faut declarer une bibiotheque pour le readlin quoi?
0
gardiendelanuit Messages postés 1770 Date d'inscription   Statut Membre Dernière intervention   264
 
Peux-tu donner ton bout de code?
0
akim
 
ok!
int main ()
{ int i,j; char ch;
printf("entrez un mot.\n");
//ici il faut utiliser le readline a la place de scanf.
sacnf("%s",&ch);
for(j=0; ch[j]; j++);
j--;
for(i=0; i<j; i++,j--)
if(ch[i]==ch[j])
printf("c'est un palindrome.\n");
else
printf("ce n'est pas un palindrome.\n");


en fait un peu ça le programme donc je sais trop comment utiliser le readline
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Bonjour,

Ton algorithme est faux.
Il ne suffit pas que ch[i]==ch[j] soit vrai une seule fois pour que ta chaîne soit un palindrome. Il faut que ça soit vrai pour toute la chaîne.

Si tu mets char ch; tu ne peux pas mettre scanf("%s",ch); Il faut allouer de la place soit par : char ch[255]; soit par un malloc.
Voilà comment fonctionne readline : https://linux.die.net/man/3/readline
Il vaut mieux utiliser fgets.
0
akim
 
merci a toi
0