Pb avec argv : argv[1] vide

Signaler
Messages postés
4
Date d'inscription
mercredi 16 novembre 2005
Statut
Membre
Dernière intervention
2 décembre 2007
-
Messages postés
1243
Date d'inscription
jeudi 31 mars 2005
Statut
Membre
Dernière intervention
3 août 2016
-
Bonjour à tous,

j'ai le code suivant :


Code:
,
----

int main(int argc, char* argv[])
{
FILE *yyout2;
const char* DocName;

/* Ouverture du fichier HTML */if((yyout2 fopen(argv[1], "r")) NULL){
cout << "fichier HTML non ouvert" << endl;
}

/* Appel de la fonction automate */
DocName = automate(yyout2);

rename(argv[1], DocName);

return 0;
}

Cependant, il m'affiche toujours "ficher HTML non ouvert", puisque dans argv[1] il n'y a rien (j'ai testé, d'ailleurs argc=1).

Comment se fait-il qu'il n'y ait rien dans argv[1] ? Comment puis-je résoudre ce problème ?

Merci d'avance

4 réponses

Messages postés
15134
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
16 septembre 2021
99
argv contient les arguments passés au programme lors d'une exécution en ligne de commande (argv[0] = nom de l'executable). si tu ne tape pas: truc.exe fichier.html tu ne pourras pas continuer...

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Messages postés
947
Date d'inscription
mercredi 19 novembre 2003
Statut
Membre
Dernière intervention
5 avril 2008
3
int main(int argc, char* argv[])

C'est plutot comme ceci qu'il faut s'habituer a le faire:

int main(int argc, char *argv[])
Messages postés
15134
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
16 septembre 2021
99
Aucun rapport avec la choucroute même si je suis d'accord :)
Pour en revenir au problème, si tu es sous Visual, tu peux indiquer les arguments du programme dans Project>Settings>Debug>Program Arguments

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Messages postés
1243
Date d'inscription
jeudi 31 mars 2005
Statut
Membre
Dernière intervention
3 août 2016
2
Rapelle



main(int argc,char **argv)



argc = contient le nombre d'argument passés

argv[0] = contient nom et/ou chemin de l'éxécutable (cela dépend)

argv[1]

argv[2]

... = contient les arguments ajoutés



Bon code



++aLL