Mon prog ne marche pas avec Cygwin

Résolu
cs_thespartan Messages postés 36 Date d'inscription samedi 3 février 2007 Statut Membre Dernière intervention 26 mai 2008 - 4 juin 2007 à 11:23
cs_thespartan Messages postés 36 Date d'inscription samedi 3 février 2007 Statut Membre Dernière intervention 26 mai 2008 - 12 juin 2007 à 01:22
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

cs_thespartan Messages postés 36 Date d'inscription samedi 3 février 2007 Statut Membre Dernière intervention 26 mai 2008
12 juin 2007 à 01:19
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
3
cs_thespartan Messages postés 36 Date d'inscription samedi 3 février 2007 Statut Membre Dernière intervention 26 mai 2008
12 juin 2007 à 01:22
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
3
cs_max12 Messages postés 1491 Date d'inscription dimanche 19 novembre 2000 Statut Modérateur Dernière intervention 7 juillet 2014
6 juin 2007 à 00:02
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+
0
Rejoignez-nous