Récupération des caractères dans un fichier

aly -  
[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

J'ai un petit soucis dans un projet où je dois développer un préprocesseur. Dans celui ci j'ouvre un fichier exemple toto.txt qui est passé en argument à ma fonction main. Le fichier toto.text contient en exemple:
#include
#define
Je recupère chaque caractère mais je veux poser une condition qui veut dire si le caractére rencontré est un '#' et qu'il soit en début de ligne je recupére ce qui reste dans un tableau.
Concrétement mon probléme est que je ne sais pas comment mettre la condition pour dire si le '#' est e début de ligne.
ce que j'ai fait :
 char c;
 if (c== '#'){//je lui dis s'il rencontre un # mais je bloque sur la deuxième condition comment   //lui que si ce #est en début de ligne
}

Merci d'avance.
Bien cordialement.
A voir également:

1 réponse

[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   1 105
 
Salut aly,

Je suppose que tu lis ton fichier caractère par caractère.

Si c'est bien cela, il me semble qu'il suffirait de traiter ainsi ton flux :

- si c'est le 1er caractère que tu lis, et que c'est un '#', il est en début de ligne (en début de la 1ère ligne, même, puisque c'est le tout premier caractère lu)

- autrement, tu vérifies si le caractère que tu lis est '\n' ou '\r' (caractères marquant le retour à la ligne suivant les formats de fichiers texte), si c'est le cas, tu gardes cette information, et si le caractère suivant lu est un '#', tu dois pouvoir en déduire que ce caractère '#' est en début de ligne


Dal
0
aly
 
Bonjour Dal,
je viens de mettre ce que vous m'avez dit. Enfin, moi je l'ai compris de cette façon.
if(c=='#'{
              if (c!='\n'){
               }
}

Il y a un petit soucis si j'ai un # qui n'est pas en début de ligne il considère comme s'il était en début de ligne. Et c'est ça que je veux pas.comme je vous l'ai dit je doit faire un préprocesseur. Ainsi, toute directive commence par un # qui est en début de ligne suivi après (include, timestamp et etc.).
Bien cordialement.
0
[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   1 105
 
tu dois utiliser deux variables :

- une pour "conserver" le caractère précédemment lu
- une pour accueillir le caractère actuellement lu


Dal
0