ARGV,ARGC, ENVP--->>>> big prob - C++ - Programmation
Marsh Posté le 08-09-2003 à 17:23:05
Code :
|
ca c idiot ca, tu affiches un message d'erreur avant meme d'avoir essayé toutes les possibilités
Marsh Posté le 08-09-2003 à 17:26:50
sa fonctione tjr pas.IL m'affiche 20 x
"impossible de trouver la valeur de path" << endl;
Marsh Posté le 08-09-2003 à 17:45:28
Code :
|
Avec un tolower ou upper ca serait bien aussi mais bon, et manque des cas d'erreur/init.
Marsh Posté le 08-09-2003 à 18:03:15
merci pour ton aide. Il affiche toujour qu'il trouve rien mais je vais chercher alors d'ou poourrait kan meme venir ce prob
Marsh Posté le 08-09-2003 à 18:03:57
C:\labo1\Debug>main 1 Path
impossible de trouver la valeur de path
impossible de trouver la valeur de path
impossible de trouver la valeur de path
impossible de trouver la valeur de path
impossible de trouver la valeur de path
impossible de trouver la valeur de path
impossible de trouver la valeur de path
impossible de trouver la valeur de path
impossible de trouver la valeur de path
impossible de trouver la valeur de path
impossible de trouver la valeur de path
impossible de trouver la valeur de path
impossible de trouver la valeur de path
impossible de trouver la valeur de path
impossible de trouver la valeur de path
impossible de trouver la valeur de path
impossible de trouver la valeur de path
impossible de trouver la valeur de path
impossible de trouver la valeur de path
impossible de trouver la valeur de path
Marsh Posté le 08-09-2003 à 18:09:54
Ben euh le bout de code semble marcher, vient de tester sur 76 var ds Path sous Win et Solaris ds un soft la pour voir, juste a mettre le nom exact avec la case de la var d'env.
Enfin comme chrish ou moi l avons marqué, mieux vaudrait faire ca en version case insensitive
Marsh Posté le 08-09-2003 à 18:13:10
VisualC++ a écrit : Ben euh le bout de code semble marcher, vient de tester sur 76 var ds Path sous Win et Solaris ds un soft la pour voir, juste a mettre le nom exact avec la case de la var d'env. |
chrish ?
mais qui c'est cet ursupateur ?
Marsh Posté le 08-09-2003 à 18:36:27
vous serez gentil de faire du C++ avec les std::string et de faire gaffe aux bornes (s'arreter quand truc[x]==NULL)
Marsh Posté le 26-08-2012 à 20:47:54
zouzouille a écrit : Quelqu'un pourrait il m'aider,le sujet est simplemais j'y arrive pas :-). |
Salut Camarade programmeur,
Pas la peine d'employer la force brute mon ami.
Le problème vient tout simplement de ton test.
As-tu oublié ce que tout bon programmeur ne devrait pas oublier, surtout en C, ceci :
Ton argument en ligne de commande :
Path ou PAth ou PATH (peu importe),
et l'entrée de la table des variables d'environnement :
PATH=c:\windows\system;c:\windows\system32;...
Or; si tu compares ton PATH passé en ligne de commande avec l'entrée de cette table,
la fonction strcmp(Adresse de ton argument,entrée de la table des variables d'environnement contenant 'PATH') ne te retournera jamais 0 ;
à moins que l'entrée de la table ne contienne que 'PATH'
et à condition que tu aies tout converti en majuscules ou tout en minuscules !
Stop aux if, aux boucles for, aux boucles while, etc...
Je t'ai donné des pistes, à toi de les explorer.
Mais de grâce, épargne-moi cette écriture alambiquée du langage C.
Ce langage, d'une efficacité redoutable lorque les programmes sont bien écrits et bien conçus, mérite mieux, mais beaucoup mieux que cela.
Zeltron2048.
Marsh Posté le 27-08-2012 à 02:43:14
Ha, t'es bien gentil mais au bout de 9 ans il a du laisser tomber
Marsh Posté le 08-09-2003 à 17:21:00
Quelqu'un pourrait il m'aider,le sujet est simplemais j'y arrive pas :-).
En faite je creer un pgm où je lui fourni des parametre et en retour il doit me donner le numero ou ce trouve le parametre.
Exemple: main 1 Path,j'aimerai qu'il me retourne la ligne(normalement c'est la 15 qui contient la variable d'environnement Path). Pour pouvoir executé le pgm, il faut utilisé command et tapé aller dans le repertoire du debug du pgm et tapé le nom du pgm suivi de 1 et du mot Path.
Pourriez vous me dire pourquoi quand je compare ARGV[2](C'est Path entrer en parametre), il ne le trouve pas dans ENVP.(contient toute les variable)Pour voir les variable taper" set "dans command.
#include <stdio.h>
#include <stdlib.h>
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
#include <string.h>
int main(int argc ,char *argv[],char *envp[])
{
if (strcmp(argv[1],"1" )==0)
{
for(int x=0;x<20;x++)
{
if (strcmp(envp[x],argv[2])==0)
{
cout << "trouve" << endl;
}
else
{
cout << "impossible de trouver la valeur de path" << endl;
}
}
}
else
{
cout << "Numero correspond pas(1 ou 2 ou 3)" << endl;
}
return 0;
}