Entree formate en c
stk
-
blurk Messages postés 486 Date d'inscription Statut Membre Dernière intervention -
blurk Messages postés 486 Date d'inscription Statut Membre Dernière intervention -
bonjour,
je cherche à lire une chaine de caractére à partir d'un fichier en c
sont format est le suivant :
chaine1 chaine2
le probleme, c'est que chaine2 peut contenir des espace.
entre chaine1 et chaine2, il peut y avoir une ou plusieurs tabulations
j'essaye avec fscanf :
while ( (fscanf (fp, "%10s %10s", champ1, champ2)) != EOF)
printf ("champ 1 : %s, champ2 : %s\n", &champ1, &champ2);
je ne sais pas comment faire pour faire la difference entre les espaces et le tabulation :(
quelq'un connait t'il la facon de faire (ou une autre fonction + pratique ??)
merci par avance
je cherche à lire une chaine de caractére à partir d'un fichier en c
sont format est le suivant :
chaine1 chaine2
le probleme, c'est que chaine2 peut contenir des espace.
entre chaine1 et chaine2, il peut y avoir une ou plusieurs tabulations
j'essaye avec fscanf :
while ( (fscanf (fp, "%10s %10s", champ1, champ2)) != EOF)
printf ("champ 1 : %s, champ2 : %s\n", &champ1, &champ2);
je ne sais pas comment faire pour faire la difference entre les espaces et le tabulation :(
quelq'un connait t'il la facon de faire (ou une autre fonction + pratique ??)
merci par avance
A voir également:
- Entree formate en c
- Cheick yvann formate - Forum Vos droits sur internet
- Que du fake formate heritage ✓ - Forum Vos droits sur internet
- Formate pour taxer connexion internet - Forum Webmastering
- Plus de connexion internet après formatage ✓ - Forum Réseau
- Formate de menace interpol - Forum Vos droits sur internet
4 réponses
ça fait horriblement longtemps que j'ai pas toucher au C mais si je me trompe pas l'espace a pour code 0x20 essai donc de repéré ce caractere dans ton code....
cap
cap
Salut,
Si tu ne connait pas de maniere precise le format de tes données scanf ne te sera pas d'une grande utilité. Deux solutions, soit faire le decoupage à la main ( facile dans le cas que tu decris) soit si les données sont plus complexe, les decrire à l'aide d'expression regulieres
A+
Damien
Si tu ne connait pas de maniere precise le format de tes données scanf ne te sera pas d'une grande utilité. Deux solutions, soit faire le decoupage à la main ( facile dans le cas que tu decris) soit si les données sont plus complexe, les decrire à l'aide d'expression regulieres
A+
Damien
merci pour vos reponces...
on m'a conseiller d'utiliser quelque chose du genre :
fscanf (fp, "%[^\t]%*[\t]%[^\n] ",champ1,champ2)
(ca ressemble en effet à une expression reguliere...)
sinon pour info le fichier en question est : /etc/X11/xkb/rules/xfree86.lst
extrait :
! model
pc101 Generic 101-key PC
pc102 Generic 102-key (Intl) PC
pc104 Generic 104-key PC
pc105 Generic 105-key (Intl) PC
dell101 Dell 101-key PC
everex Everex STEPnote
je cherche à stoker le model dans une variable et la description dans une autre...
sinon peut tu me donner quelque indices sur la facon de faire "à la main", utilise-tu strtok etc... ???
on m'a conseiller d'utiliser quelque chose du genre :
fscanf (fp, "%[^\t]%*[\t]%[^\n] ",champ1,champ2)
(ca ressemble en effet à une expression reguliere...)
sinon pour info le fichier en question est : /etc/X11/xkb/rules/xfree86.lst
extrait :
! model
pc101 Generic 101-key PC
pc102 Generic 102-key (Intl) PC
pc104 Generic 104-key PC
pc105 Generic 105-key (Intl) PC
dell101 Dell 101-key PC
everex Everex STEPnote
je cherche à stoker le model dans une variable et la description dans une autre...
sinon peut tu me donner quelque indices sur la facon de faire "à la main", utilise-tu strtok etc... ???
fscanf va lire jusqu'au premier espace (0x20) ou retour chariot (\n)
rencontré.
Tu peux utiliser fgetc() qui lit un seul caractere et le renvoie
au programme. Dans ce cas, c'est à toi de faire le traitement
de formatage lors de la lecture.
Je crois que c'est ça que damien appelle faire le découpage à la main ?
a+
¤
rencontré.
Tu peux utiliser fgetc() qui lit un seul caractere et le renvoie
au programme. Dans ce cas, c'est à toi de faire le traitement
de formatage lors de la lecture.
Je crois que c'est ça que damien appelle faire le découpage à la main ?
a+
¤