[ Programmation C ]Readline
x-timas
Messages postés
124
Date d'inscription
Statut
Membre
Dernière intervention
-
x-timas Messages postés 124 Date d'inscription Statut Membre Dernière intervention -
x-timas Messages postés 124 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je sais que la commande readline permet de lire une ligne de commande entrée par le clavier et de la stocjer dans une chaine de caractères.
Seulement je veux utliiser cette commande pour lire les données depuis un fichier car je travaille sur une simulation de réseau que je dois configurer ç chaque fois à la main...Au lieu de faire ça j'aimerais écrire mes commandes dans un fichier et les lire automatiqueùent pour configurer le réseau rapidement.
J'ai écrit un bout de code mais ça ne marche pas trop....
Quelqu'un pourra m'aider peut être? et si besoin je peux fournir ce que j'ai écrit
Merci
je sais que la commande readline permet de lire une ligne de commande entrée par le clavier et de la stocjer dans une chaine de caractères.
Seulement je veux utliiser cette commande pour lire les données depuis un fichier car je travaille sur une simulation de réseau que je dois configurer ç chaque fois à la main...Au lieu de faire ça j'aimerais écrire mes commandes dans un fichier et les lire automatiqueùent pour configurer le réseau rapidement.
J'ai écrit un bout de code mais ça ne marche pas trop....
Quelqu'un pourra m'aider peut être? et si besoin je peux fournir ce que j'ai écrit
Merci
3 réponses
Salut,
Tu as la fonction fgets(FILE*).
fgets(stdin); pour lire une entrée clavier (attention à la valeur max).
fgets(fp); avec fp=fopen("fichier","r"); pour lire une ligne de fichier (attention à la valeur max).
Cdlt
Tu as la fonction fgets(FILE*).
fgets(stdin); pour lire une entrée clavier (attention à la valeur max).
fgets(fp); avec fp=fopen("fichier","r"); pour lire une ligne de fichier (attention à la valeur max).
Cdlt
En fait
Tu peux faire :
J'espère que ce code t'aidera à y voir plus clair.
Tu peux faire :
char buffer[500]; //ici précise une taille supérieure à la longueur maximum des lignes. while(fgets(buffer,sizeof buffer,fp)) { //si la ligne a été lu entièrement (et si ce n'est pas la dernière), //alors tu as le '\n' de stocker dans buffer char *p=strchr(buffer,'\n'); if(p==NULL) { puts("ligne non lue entièrement"); } else { //on enlève le '\n'; *p='\0'; //tu peux faire ici ton traitement de ligne //etc. } }
J'espère que ce code t'aidera à y voir plus clair.
ifconfig udp0 create vlan 1000
ifconfig udp6 create vlan 2000
ifconfig udp120 create vlan 1050
ifconfig udp0 175.120.6.100 netmask 255.255.240.0
...
Si j'ai bien compris je place ma fonction fgets dans la condition du while avec le numero de descripteur du ficher en question et elle me lira ligne par ligne avec le max 10000 par exemple. Mais avec les \n dans le fichier elle va me renvoyer à chaque fois une seule ligne stocké dans une buffer c'est ça?
Si c'est ça mon problème est réolu, car j'ai besoin de récuperer les données ligne par ligne et non pas à une taille bien précise
Alors?