[awk en C]

Résolu/Fermé
coq - 21 déc. 2009 à 19:24
mamiemando Messages postés 33346 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 8 novembre 2024 - 23 déc. 2009 à 01:25
Bonjour,

J'utilise la commande système awk dans un programme C de la manière suivante :
system("awk '{print $1}' /media/MaCle/Liste");

Il se trouve que le premier terme de chaque ligne de mon fichier Liste est un nombre. Ce sont donc ces nombres qui s'affichent dans ma console.

Je voudrais créer un tableau dans mon programme C qui récupère ces nombres. J'aurai donc un tableau avec par exemple :
liste[0] = le premier terme de la première ligne
liste[1] = le premier terme de la deuxième ligne
liste[2] = le premier terme de la troisième ligne
etc...

Or je n'arrive pas a récupérer ce qu'à trouvé le awk :s

Avez-vous une idée ?

2 réponses

mamiemando Messages postés 33346 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 8 novembre 2024 7 803
22 déc. 2009 à 01:19
Pour quoi ne pas lire ton fichier avec des getline et ensuite récupérer la valeur qui t'intéresse avec un sscanf appliqué au buffer qui contient ta ligne ?
https://linux.die.net/man/3/getline
https://linux.die.net/man/3/sscanf

Pour les formats de fichiers plus compliqués, il y a des librairies comme la librairie pcre (support des expressions régulières) qui sont bien plus adaptées et propres qu'un appel système à awk.
http://www.pcre.org/

Bonne chance
1
J'ai utilisé ta 1ère solution. Merci !
0
mamiemando Messages postés 33346 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 8 novembre 2024 7 803
23 déc. 2009 à 01:25
Merci pour ces précisions, bonnes fêtes et bonne continuation :-)
0