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.

3 réponses

  1. gardiendelanuit Messages postés 1772 Date d'inscription   Statut Membre Dernière intervention   267
     
    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
  2. 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
    1. gardiendelanuit Messages postés 1772 Date d'inscription   Statut Membre Dernière intervention   267
       
      Peux-tu donner ton bout de code?
      0
  3. 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
    1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      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
    2. akim
       
      merci a toi
      0