[C] argv[1]

Résolu
mathieu -  
 ParisTech -
Bonjour,
j'aimerais comprendre pourquoi lorsque je fais ceci cela ne marche pas :

int main(int argc, char *argv[])
{
char lettre= argv[1];
printf("caractere %c\n", lettre);
printf("arg 1 : %c\n", argv[1]);

return EXIT_SUCCESS;
}

Je lance mon programme qui s'appelle test en tapant simplement :
test F

Et cela ne m'affiche rien dans le printf, j'ai un blanc quoi au lieu d'avoir la lettre F.
Pouvez-vous m'expliquer ?

4 réponses

(Pabix) Messages postés 578 Date d'inscription   Statut Membre Dernière intervention   81
 
Pour simplifier, déclarer char *argv[], équivaut exactement à déclarer char **argv.
2
ParisTech
 
merci pour l'exlication
0
(Pabix) Messages postés 578 Date d'inscription   Statut Membre Dernière intervention   81
 
Attention, j’ai posté deux messages, mais je ne suis qu’un. Bonne soirée.
1
(Pabix) Messages postés 578 Date d'inscription   Statut Membre Dernière intervention   81
 
bonjour, argv[1] est de type char *, et pas de type char.

Pour avoir la 1re lettre du 1er argument, vous devez faire :

char lettre = argv[1][0] ;
ou
char lettre = *(agrv[1]) ;
0
mathieu
 
HAAAAAAAAAA oui c'est vrai le *argv[], un pointeur sur tableau soit **argv
merci beaucoup à vous deux
0