Partage
  • Partager sur Facebook
  • Partager sur Twitter

Linux problème chaine de caractère

Sujet résolu
    11 septembre 2018 à 18:51:56

    Bonjour/Bonsoir,

    J'ai voulu tester un programme que j'avais créer sous windows sur linux mais malheureusement j'ai un problème que je ne comprends pas !

    Le programme va chercher dans un fichier des chaines de caracteres et va les comparer avec ceux dans le code.

    Par exemple, si j'avais dans mon fichier "test" alors la chaine était "test\n\0" et je devais enlever le "\n" avant de l'a comparer mais sur linux il semblerait que la chaine soit de la forme "test?\n\0"

    Le point d'interrogation correspond au caractère que je ne comprends pas et qui m'embête beaucoup car toute les comparaisons sont erronées ! C'est un caractere que je ne peux pas afficher comme pour \n ou \0 et qui apparaît seulement sur linux !

    Les chaines sont récupérées via la commande fgets !

    Je ne vois pas trop quoi mettre comme code mais dite moi si ils vous manquent quelques éléments !

    Merci beaucoup !

    • Partager sur Facebook
    • Partager sur Twitter
      11 septembre 2018 à 21:50:55

      Bonjour,

      Si le fichier texte est repris tel quel de Windows, alors il n'est pas compatible avec Linux. Sur Windows, les fins de lignes sont marquées par CR LF, et seulement LF sur Unix.

      Pour convertir le fichier au format Unix, tu peux utiliser la commande Unix suivante:

      tr -d '\r' < input.file > output.file



      -
      Edité par Marc Mongenet 11 septembre 2018 à 21:51:21

      • Partager sur Facebook
      • Partager sur Twitter
        12 septembre 2018 à 11:35:24

        Merci ! Mais comment convertir un fichier sans écraser tout ce qu'il contient ?
        • Partager sur Facebook
        • Partager sur Twitter
          12 septembre 2018 à 11:38:52

          Avec la commande que j'ai donnée.
          • Partager sur Facebook
          • Partager sur Twitter
            12 septembre 2018 à 11:58:50

            Ok quand j'utilise la commande en donnant le même nom pour input et output cela écrase le fichier mais sinon on donne des noms differents cela marche merci !
            • Partager sur Facebook
            • Partager sur Twitter
              13 septembre 2018 à 15:53:57

              Oui, il en est toujours ainsi avec les redirections '<' et '>' du shell Unix.
              • Partager sur Facebook
              • Partager sur Twitter

              Linux problème chaine de caractère

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown