IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

strcmp : résultat inattendu


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de med_alpa
    Inscrit en
    Juillet 2005
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 134
    Par défaut strcmp : résultat inattendu
    Bonjour;

    J'ai écrit un bout de code contenant une comparaison entre deux chaines en C.

    ligne_lue c'est une ligne lue à partir d'un fichier txt

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    while((fgets(ligne_lue, 512, fichier) != NULL)&&(strcmp(ligne_lue,"Debut:\n")!=0)){
          }
    la comparaison se fait correctement sous windows.
    mais lorsque j'ai testé le programme sous Linux (ubuntu) je n'ai pas eu le même resultat. pourtant c'est le même fichier.

    Avez vous une idée?
    merci.

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 104
    Par défaut
    Avant de traiter toute chaine lue depuis un fichier, il faut déjà supprimer virer les \r et les \n éventuellement présents dedans. Sous Windows et sous Linux une ligne ne se termine pas de la même façon. Sous Windows, une ligne se termine par \r\n et sous Linux par \n. Peut-être que ton soucis vient de là. Supprimer les \r et \n d'une chaine permet de toute façon de la traiter proprement par la suite.

  3. #3
    Membre confirmé Avatar de med_alpa
    Inscrit en
    Juillet 2005
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 134
    Par défaut
    Merci pour votre reponse.

    En fait j'ai ajouté le \n mais ça n'a rien changé.

    J'ai résolu le problème en retapant le fichier text sous Linux et en supprimant les caractères avec des accents.
    merci.

  4. #4
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 832
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 832
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par med_alpa Voir le message
    En fait j'ai ajouté le \n mais ça n'a rien changé.
    On t'avait pas dit de le rajouter mais de l'enlever !!!

    Citation Envoyé par med_alpa Voir le message
    J'ai résolu le problème en retapant le fichier text sous Linux
    T'as le programme dos2unix qui fait ça très bien

    Citation Envoyé par med_alpa Voir le message
    et en supprimant les caractères avec des accents.
    Alors c'était peut-être plus un souci d'accent que d'autre chose...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  5. #5
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    En fait, c'est sans doute le fichier .txt qui n'avait pas le bon format sous Linux (il devait être toujours au format DOS, d'où le \r qui était naturellement converti sous Windows et pas sous Linux).
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. résultats inattendu avec jointure
    Par bmarcellin71 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 10/09/2009, 17h59
  2. [MySQL] Résultat inattendu d'un select
    Par Trebor_ dans le forum PHP & Base de données
    Réponses: 15
    Dernier message: 08/04/2008, 08h06
  3. xhtml strict : résultat inattendu
    Par samuelsiffert dans le forum Langage
    Réponses: 0
    Dernier message: 24/12/2007, 11h30
  4. Réponses: 14
    Dernier message: 25/07/2006, 22h28
  5. résultat inattendu avec acCmdPrint
    Par stigma dans le forum Access
    Réponses: 3
    Dernier message: 25/03/2006, 21h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo