Mon prog ne marche pas avec Cygwin

Résolu
Signaler
Messages postés
36
Date d'inscription
samedi 3 février 2007
Statut
Membre
Dernière intervention
26 mai 2008
-
Messages postés
36
Date d'inscription
samedi 3 février 2007
Statut
Membre
Dernière intervention
26 mai 2008
-
Salut. J'ai écrit un programme qui remplit un tableau à partir d'un fichier. Il marche parfaitement avec Dev C++ et sur Solaris (gcc version 2.95.1). Le problème c'est que dès que je passe sous Cygwin (gcc version 3.4.4), il marche plus.

Sous Cygwin, j'obtient :
  0|  1|  2|  3|  4|  5|  6|  7|  8|  9| 10| 11| 12| 13| 14
  A   A   A   A   A   B   B   C   C   C   C   D   F   F   G
                       
  
                        
 13   0   0   0   0   0   0   0   0   0   0   0   0   0   0
------------------------------------------------------------

au lieu de :
  0|  1|  2|  3|  4|  5|  6|  7|  8|  9| 10| 11| 12| 13| 14
  A   A   A   A   A   B   B   C   C   C   C   D   F   F   G
  B   C   E   F   G   E   D   D   E   F   H   E   G   H   H
 13  23  19   7   5   5   4  13  10  11  19   5   7   2   9
------------------------------------------------------------

Source et fichier sur http://www.megaupload.com/fr/?d=2W7L94KB .

Merci!!

Spartan

3 réponses

Messages postés
36
Date d'inscription
samedi 3 février 2007
Statut
Membre
Dernière intervention
26 mai 2008

C'est bon je m'en suis sorti...

foo.txt :
A
B
C

Impression du contenu de foo.txt en ASCII :

    Résultat sous Dev C++ et gcc 2.95.1 :
    651066106710

    Résultat sous Cygwin (gcc 3.4.4) :
    651310661310671310

Dans le 2ème cas, là où mon prog marchait pas, on voit apparaître plusieurs 13 correspondant au caractère '\r' .
Quel intérêt d'interpréter differemment ce caractère d"une version à l'autre du compilo ?

Spartan
Messages postés
36
Date d'inscription
samedi 3 février 2007
Statut
Membre
Dernière intervention
26 mai 2008

ah je viens de trouver ça sur wikipédia :
<li>Sous DOS et Microsoft Windows, la fin de ligne est indiquée par un retour chariot suivi d'un saut de ligne (CRLF).</li><li>Sous Unix, la fin de ligne est indiquée par un saut de ligne (LF).</li>So why Dev C++ se comporte comme sous Unix?

Spartan
Messages postés
1491
Date d'inscription
dimanche 19 novembre 2000
Statut
Modérateur
Dernière intervention
7 juillet 2014

Tout ce que je peux voir c'est que le programme est fautif et qu'il exploite peut-être une norme qui a  peut-être changée d'une version à l'autre du compilateur. Un peu comme un programme que j'avais fait une fois, il traitait mal un tableau quand j'exécutait le programme en mode release sur un vieux PIII mais sur aucune autre machine que j'ai vue le problème ne se produisait Bien sûr l'erreur était dans le code mais c'est sûrprenant parfois combien des erreurs peuvent être subtiles.

Bon j'arrête de t'ennuyer :P Au pire essaie de reprendre la fonction et de tracer la partie qui serait peut-être susceptible de causer problème sinon refaire la partie au complet mais c'est chiant.

A+