Lecture de ligne dans un fichier texte sous windows et unix

Signaler
Messages postés
192
Date d'inscription
dimanche 16 janvier 2005
Statut
Membre
Dernière intervention
28 février 2011
-
Messages postés
653
Date d'inscription
mardi 6 décembre 2005
Statut
Membre
Dernière intervention
10 novembre 2014
-
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

Messages postés
181
Date d'inscription
mardi 6 avril 2010
Statut
Membre
Dernière intervention
7 janvier 2012
8
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
Messages postés
653
Date d'inscription
mardi 6 décembre 2005
Statut
Membre
Dernière intervention
10 novembre 2014
2
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