Traduire la boucle for en c
nassim1987
Messages postés
105
Date d'inscription
Statut
Membre
Dernière intervention
-
Hxyp Messages postés 401 Date d'inscription Statut Membre Dernière intervention -
Hxyp Messages postés 401 Date d'inscription Statut Membre Dernière intervention -
Bonjour, si on part de l'instruction suivante: for(i=0;i<10;i++)
écrite dans un fichier que je vais ouvrir en lecture, je voudrais dans un objectif de traduction ultérieur récupéré les informations de cette boucle telle que la valeur initiale de l'indice sa valeur final, le pas ect..
En prenons en considération que par exemple le pas final peut être < à une valeur mais peut être <= ou autre chose si la boucle est en phase descendante.
Pouvez vous m'aider à trouver la manière ou la méthode de lire ce fichier, bien sur cette traduction en langage c doit être valable même en variant les paramètres (pas final,pas)
Merci
écrite dans un fichier que je vais ouvrir en lecture, je voudrais dans un objectif de traduction ultérieur récupéré les informations de cette boucle telle que la valeur initiale de l'indice sa valeur final, le pas ect..
En prenons en considération que par exemple le pas final peut être < à une valeur mais peut être <= ou autre chose si la boucle est en phase descendante.
Pouvez vous m'aider à trouver la manière ou la méthode de lire ce fichier, bien sur cette traduction en langage c doit être valable même en variant les paramètres (pas final,pas)
Merci
A voir également:
- Traduire la boucle for en c
- Downloader for pc - Télécharger - Téléchargement & Transfert
- Comment traduire un site en français - Guide
- Traduire image - Guide
- Comment traduire sur whatsapp - Accueil - Messagerie instantanée
- Idm for mac - Télécharger - Téléchargement & Transfert
1 réponse
Bonjour,
Vous pouvez utiliser la chaine connue "for" et ensuite le contenu entre les (), puis vous séparez les paramètres grâce aux ; vous aurez alors les 3 chaines :
i=0
i<10
i++
on peut utiliser le nom de la variable et la valeur numérique pour récupérer les symboles ou utiliser les symboles pour récupérer la variable et la valeur numérique, je pense que ce serait plus simple de récupérer les symboles.
Un peu de code pour l'explication :
le resultat du code donne :
i=0
i<10
i++
a=15
a>=2
a--
les paramètres sont contenu dans le buff bfparam chacun leur tour à vous de voir comment les utiliser (récupération des variables, symboles et valeurs) et où les stocker par la suite en remplaçant les printf.
Vous pouvez utiliser la chaine connue "for" et ensuite le contenu entre les (), puis vous séparez les paramètres grâce aux ; vous aurez alors les 3 chaines :
i=0
i<10
i++
on peut utiliser le nom de la variable et la valeur numérique pour récupérer les symboles ou utiliser les symboles pour récupérer la variable et la valeur numérique, je pense que ce serait plus simple de récupérer les symboles.
Un peu de code pour l'explication :
#include <stdio.h>//printf #include <string.h>//strlen void recup_for(const char *a) { char *fro="for", buff[250],bfparam[80];//taille des buff à l'arrache unsigned int x=strlen(a),i,y=0,p=0,z=0; /* x=taille de a, i pour la boucle principale y pour la chaine fro "for" p pour les parenthese, z pour le buff */ for(i=0;i<x;i++) { if(a[i]==fro[y]){y++;}//trouve la chaine "for" if(y==3)//si la chaine "for" est trouvée { if(a[i]==')'){//si on arrive à la dernière parenthese ) p=0;y=0;//reset des () et "for" pour le "for" suivant ansi que pour le premier param utilsant p buff[z]='\0'; //buff contient ce qu'il y a entre les () for(z=0;z<strlen(buff);z++) //parcour du buff recyclage de z { if(buff[z]==';') { //si ; alors bfparam contient soit le 1er ou 2e parametre bfparam[p]='\0';//ferme la chaine avec un caractere null printf("%s\n",bfparam);//affichage du parametre p=0;//reset de p pour le parametre suivant } else { bfparam[p]=buff[z]; p++; //charge le param avec recyclage de p } } bfparam[p]='\0';//ferme chaine pour le 3e parametre printf("%s",bfparam);//affichage du dernier parametre printf("\n\n");//fin du traitement du "for" actuel z=0;//reset de z pour un "for" suivant } if(p==1) {//met le contenu entre les () dans le buff buff[z]=a[i]; z++; } if(a[i]=='('){p=1;} } } } int main() { recup_for("test for(i=0;i<10;i++){} test for(a=15;a>=2;a--){} test"); return 0; }
le resultat du code donne :
i=0
i<10
i++
a=15
a>=2
a--
les paramètres sont contenu dans le buff bfparam chacun leur tour à vous de voir comment les utiliser (récupération des variables, symboles et valeurs) et où les stocker par la suite en remplaçant les printf.