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

moumouteb Messages postés 192 Date d'inscription dimanche 16 janvier 2005 Statut Membre Dernière intervention 28 février 2011 - 2 févr. 2008 à 20:09
Neo_Fr Messages postés 653 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 10 novembre 2014 - 2 févr. 2008 à 23:32
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

Neo_Fr Messages postés 653 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 10 novembre 2014 2
2 févr. 2008 à 23:32
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
0
Rejoignez-nous