Déplacement dans un flux jusqu'a un carractère.

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,

Voila mon problème :
Je récupère une ligne d'un fichier texte que je stocke dans une variable de type istringstream. Je voudrais déplacer mon "curseur virtuel" jusqu'à après la première virgule (pour ensuite récupérer une variable de type double).
Pour le moment la seule solution que j'ai trouvée est d'utiliser getline (,,',') pour me déplacer jusqu'à la virgule.

Je suppose qu'il existe une façon plus "élégante" pour arriver après un caractère donné, quelqu'un peut-il m'aider?

Merci d'avance.

<hr size="2" width="100%" />Quand la merde vaudra de l'or les pauvres naitront sans trou du cul. Coluche.

1 réponse

Messages postés
653
Date d'inscription
mardi 6 décembre 2005
Statut
Membre
Dernière intervention
10 novembre 2014
2
Je ne sais pas si cette solution te semblera 'plus élégante', mais elle est incontestablement + rapide:

http://www.cppfrance.com/codes/WIN32-LIRE-FICHIER-LIGNE-LIGNE_44453.aspx

Inclut ds ton projet ReadLine.c et ReadLine.h

#define LINESIZE 32
char szFilePath[] = "C:\\ton_fichier.txt";

LPOPENL lpoLine;
BYTE LineBuff[LINESIZE];
DWORD LineLen, pLine = 0;
lpoLine = OpenLine(szFilePath, GetTypeOfFile(szFilePath));

LineLen = ReadLine(lpoLine, /*Numero de la ligne*/1, LineBuff);
while(LineBuff[pLine++] != ',') { if(pLine == LineLen) /*Erreur*/ }

// LineBuff[pLine] est le char juste apres ta virgule

CloseLine(lpoLine);

Neo_Fr