A voir également:
- Fonction scanf
- Fonction si et - Guide
- Fonction miroir - Guide
- Fonction moyenne excel - Guide
- Fonction remplacer sur word - Guide
- Fonction somme excel - Guide
6 réponses
Regarde sur le net, google est ton amis, sinon sur le site, c'est aussi explique dans le cours sur C!
. .
\_/
. .
\_/
Abusus non tollit usum
/* bout de code */
...
signed char chaine[32]; // tableau de 32 + 1 caracteres
scanf("%s", &chaine); // recupere le chaine tape au clavier pour l'ecrire dans le tableau
...
...
signed char chaine[32]; // tableau de 32 + 1 caracteres
scanf("%s", &chaine); // recupere le chaine tape au clavier pour l'ecrire dans le tableau
...
Salut Bob,
Juste quelques petites précisions concernant ta petite portion de code C : scanf("%s", &chaine);
1) le & devant chaine est inutile étant donné que chaine est un tableau de caractères et donc directement un pointeur en C. Le compilo risque de t'insulter à la compil (warning, voire erreur s'il est très susceptible).
2) scanf ne récupère pas la chaine tapée au clavier mais simplement l'ensemble des caractères saisis jusqu'au 1er caractère non "blanc" (espace, tabulation, ...). Par exemple, avec ton exemple, si tu saisis au clavier la chaine "toto tata titi", ta variable chaine ne contiendra que "toto" à l'arrivée. C'est une erreur que l'on fait très souvent , et qui est évitée par l'utilisation de la fonction gets.
A+
Juste quelques petites précisions concernant ta petite portion de code C : scanf("%s", &chaine);
1) le & devant chaine est inutile étant donné que chaine est un tableau de caractères et donc directement un pointeur en C. Le compilo risque de t'insulter à la compil (warning, voire erreur s'il est très susceptible).
2) scanf ne récupère pas la chaine tapée au clavier mais simplement l'ensemble des caractères saisis jusqu'au 1er caractère non "blanc" (espace, tabulation, ...). Par exemple, avec ton exemple, si tu saisis au clavier la chaine "toto tata titi", ta variable chaine ne contiendra que "toto" à l'arrivée. C'est une erreur que l'on fait très souvent , et qui est évitée par l'utilisation de la fonction gets.
A+
signed char *ptr;
signed char chaine[8];
ptr = &chaine;
scanf("%[A]", ptr );
Dans la théorie scanf attend un pointeur soit une adresse d'où le &chaine puis si tu veux accepter les espaces voir même le retour de chariot ce qui serait presque stupide pour terminer sa chaine on peut utiliser les [X] pour définir les caractères utilisables et [^X] pour ceux assimilé à une terminaison de chaine. J'espère t'avoir un peu plus éclairé sur les mystères du scanf.
signed char chaine[8];
ptr = &chaine;
scanf("%[A]", ptr );
Dans la théorie scanf attend un pointeur soit une adresse d'où le &chaine puis si tu veux accepter les espaces voir même le retour de chariot ce qui serait presque stupide pour terminer sa chaine on peut utiliser les [X] pour définir les caractères utilisables et [^X] pour ceux assimilé à une terminaison de chaine. J'espère t'avoir un peu plus éclairé sur les mystères du scanf.
mais pourquoi ils ne lisent pas la charte du forum? regardez au moins les anciens posts, ahe
tafiscobar
tafiscobar
bonjour
la fonction scan f pour moi est simple
premier argument de la fonction> indicateur de formatage, deuxième argument, destination de la lecture lue au clavier par l'operateur d'adresse " & ".
Voila
cependant, il est juste de souligner que le nom d'un tableau est directement un pointeur sur son 1 er element, donc, il ne faut surtout pas indiquer cet operateur sur le nom, car source d'erreur à la compilation ( 2 ème phase de construction d'un .exe..)
j'espere avoir contribuer à un peu d'eclaircissement
cordialement
abdel
la fonction scan f pour moi est simple
premier argument de la fonction> indicateur de formatage, deuxième argument, destination de la lecture lue au clavier par l'operateur d'adresse " & ".
Voila
cependant, il est juste de souligner que le nom d'un tableau est directement un pointeur sur son 1 er element, donc, il ne faut surtout pas indiquer cet operateur sur le nom, car source d'erreur à la compilation ( 2 ème phase de construction d'un .exe..)
j'espere avoir contribuer à un peu d'eclaircissement
cordialement
abdel
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question