Lecture de ligne dans un fichier texte sous windows et unix

moumouteb Messages postés 192 Date d'inscription dimanche 16 janvier 2005 Statut Membre Dernière intervention 28 février 2011 - 28 févr. 2011 à 21:47
Neo_Fr Messages postés 653 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 10 novembre 2014 - 7 mars 2011 à 13:51
Bonjour,

Je développe un code qui doit tourner sous Windows et UNIX. J'utilise la fonction getline() pour lire un fichier texte. Et bien sûr suivant d'où provient le fichier (Windows ou UNIX) seul le programme compiler sur la même plateforme le lit correctement (l'autre rajoute un caractère). J'ai vu que le retour chariot n'était pas le même suivant la plateforme donc ma question est :
Peut-on récupérer une ligne d'un fichier texte quelque que soit ça provenance avec un même code sous UNIX et Windows? Existe-il un fetline() amélioré?

Merci d'avance pour votre aide.


----------------------------------------------
Thiméo Soutien Scolaire : logiciel de soutien scolaire libre et gratuit

2 réponses

pop70 Messages postés 181 Date d'inscription mardi 6 avril 2010 Statut Membre Dernière intervention 7 janvier 2012 10
28 févr. 2011 à 22:34
Salut,
Tu peux essayer :
int main (int argc, char **argv)
{
//...
#if defined (__WIN32__) 
 // Code pour Windows
#else
 // Code pour Linux
#endif

//...
}


_WIN32_ ou autre selon ton compilateur, si ça ne marche pas avec le tien regarde sur ce site, c'est expliqué en détails.

Une autre solution serait, pour ne pas utiliser les instructions de préprocesseur, d'essayer d'ouvrir le fichier shell32.dll (C:\WINDOWS\System32\shell32.dll), c'est un fichier spécifique à Windows qui contient les icônes, si le fichier existe alors c'est sur Windows, sinon ç'est sur Unix (ou un autre système...).


C++dialement,

Pop70
0
Neo_Fr Messages postés 653 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 10 novembre 2014 2
7 mars 2011 à 13:51
Une autre solution serait, pour ne pas utiliser les instructions de préprocesseur, d'essayer d'ouvrir le fichier shell32.dll (C:\WINDOWS\System32\shell32.dll), c'est un fichier spécifique à Windows qui contient les icônes, si le fichier existe alors c'est sur Windows, sinon ç'est sur Unix (ou un autre système...).


Mieux faut utiliser les macros, tu ne peut pas garantir que ton système est installé sur le C:\

Neo_Fr
0
Rejoignez-nous