Windows, Linux et retour chariot \n (ASCII 13)

Windows, Linux et retour chariot \n (ASCII 13) - C++ - Programmation

Marsh Posté le 24-11-2004 à 20:06:05    

Hola todos,
 
J ai un code C++ qui tourne parfaitement sous linux (Red Hat 9.0). Un bout de ce programme lit un fichier texte. pour lire ce fichier texte, je lis chaque caractere les uns apres les autres et je fais des tests sur les caracteres afin de savoir si j ai une virgule, caractere ASCII 44 (pour separer des champs) ou un retour chariot, caractere ASCII 13 (nouvelle ligne) pour savoir si j entame une nouvelle ligne de mon fichier.  
Quand je lance mon code sous Windows XP, il parvient a trouver les virgules avec le caractere 44, mais il ne trouve pas les retours chariots, enfin, si je lui demande d ecrire le caractere a l ecran, il me fait bien un retour chariot, mais il n est pas capable de l identifier avec le caractere ASCII 13.
 
J ai essaye differentes methodes pour la comparaison:
 
*if (ch == 13)
 
*if (ch == "\n" )
 
*char test[]="\n"
 if (ch == test)
 
*char test[]="\n"
 if (strcmp(ch,test)==0)
 
Rien ne marche :(
 
Quelqu un aurait il une idee pour solutionner ce probleme ?
 
C est tres urgent, je dois rendre le code aujourd hui.
 
Gracias

Reply

Marsh Posté le 24-11-2004 à 20:06:05   

Reply

Marsh Posté le 24-11-2004 à 20:27:41    

if (ch=='\n')
 
Et ouvre ton fichier en mode "texte".

Reply

Marsh Posté le 24-11-2004 à 20:33:04    

Muchasssssssssssss  Graciassssssssssssssssssssss

Reply

Marsh Posté le 28-11-2004 à 20:15:16    

if (ch == 10) aussi non ?


Message édité par Slide le 28-11-2004 à 20:16:18
Reply

Marsh Posté le 29-11-2004 à 14:06:32    

Slide a écrit :

if (ch == 10) aussi non ?


Non. C'est pas parce que ça marche sur certains système unix, que ça fonctionnera bien sur toutes les machines (je crois d'ailleurs que MacOS à une époque n'utilisait que le LF plutôt que le CR ou le CRLF).

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed