[c++] Probleme avec getchar()
Fermé
Thecanardwc44
Messages postés
147
Date d'inscription
dimanche 18 juillet 2004
Statut
Membre
Dernière intervention
3 février 2008
-
31 août 2004 à 17:49
Peps - 7 mars 2008 à 09:38
Peps - 7 mars 2008 à 09:38
12 réponses
Canard007
Messages postés
5929
Date d'inscription
mercredi 26 mai 2004
Statut
Contributeur
Dernière intervention
18 septembre 2009
215
31 août 2004 à 18:06
31 août 2004 à 18:06
gets()
COIN!
COIN!
Ravachol
Messages postés
560
Date d'inscription
vendredi 5 mars 2004
Statut
Membre
Dernière intervention
30 octobre 2005
120
31 août 2004 à 18:09
31 août 2004 à 18:09
Salut.
Méfiance avec gets, il ne controle pas les débordements de buffer.
fgets est plus sûr.
A++
La pensée ne commence qu'avec le doute.
ROGER MARTIN DU GARD
Méfiance avec gets, il ne controle pas les débordements de buffer.
fgets est plus sûr.
A++
La pensée ne commence qu'avec le doute.
ROGER MARTIN DU GARD
Canard007
Messages postés
5929
Date d'inscription
mercredi 26 mai 2004
Statut
Contributeur
Dernière intervention
18 septembre 2009
215
31 août 2004 à 18:12
31 août 2004 à 18:12
fgets il fait lecture dans un fichier non?
gets suffit de faire un bon malloc avant....
De toutes manieres moi pour une recup de chaine de caractere de taille inconnue je passait par un getc() + liste chainée ensuite un beau malloc et hop une chaine toute propre...
COIN!
gets suffit de faire un bon malloc avant....
De toutes manieres moi pour une recup de chaine de caractere de taille inconnue je passait par un getc() + liste chainée ensuite un beau malloc et hop une chaine toute propre...
COIN!
Ravachol
Messages postés
560
Date d'inscription
vendredi 5 mars 2004
Statut
Membre
Dernière intervention
30 octobre 2005
120
31 août 2004 à 18:19
31 août 2004 à 18:19
>fgets il fait lecture dans un fichier non?
Dans un flux plus précisément et stdin est un flux.
De toute façon si c'est vraiment du C++ autant utiliser cin.
La pensée ne commence qu'avec le doute.
ROGER MARTIN DU GARD
Dans un flux plus précisément et stdin est un flux.
De toute façon si c'est vraiment du C++ autant utiliser cin.
La pensée ne commence qu'avec le doute.
ROGER MARTIN DU GARD
Thecanardwc44
Messages postés
147
Date d'inscription
dimanche 18 juillet 2004
Statut
Membre
Dernière intervention
3 février 2008
5
31 août 2004 à 19:01
31 août 2004 à 19:01
Esxuser moi je prog en C pas en C++.
Est-il possible de faire afficher les codes ASCII de la chaine de caracteres saisi?
Merci
Est-il possible de faire afficher les codes ASCII de la chaine de caracteres saisi?
Merci
JSS
Messages postés
3745
Date d'inscription
jeudi 22 avril 2004
Statut
Contributeur
Dernière intervention
17 décembre 2004
32
31 août 2004 à 19:05
31 août 2004 à 19:05
oui c'est possible.
JSS
JSS
JSS
Messages postés
3745
Date d'inscription
jeudi 22 avril 2004
Statut
Contributeur
Dernière intervention
17 décembre 2004
32
31 août 2004 à 19:07
31 août 2004 à 19:07
ah oui au fait ... pour le faire il te suffit d'utiliser
taille=strlen(tab);
index=0;
while(index<taille)
printf("caractere saisi : %c\n",tab[index++]);
JSS
taille=strlen(tab);
index=0;
while(index<taille)
printf("caractere saisi : %c\n",tab[index++]);
JSS
Thecanardwc44
Messages postés
147
Date d'inscription
dimanche 18 juillet 2004
Statut
Membre
Dernière intervention
3 février 2008
5
31 août 2004 à 19:08
31 août 2004 à 19:08
Merci de me présiser comment...
:)
:)
JSS
Messages postés
3745
Date d'inscription
jeudi 22 avril 2004
Statut
Contributeur
Dernière intervention
17 décembre 2004
32
31 août 2004 à 19:10
31 août 2004 à 19:10
le meme avé les commentaires ...
//tu recuperes la taille de ta chaine de caractere que tu considere comme un tableau
taille=strlen(tab);
//tu choisis une variable pour faire ta boucle
index=0;
//tu fais une boucle jusqu'au dernier element de ton tableau
while(index<taille)
//tu affiches chacun de tes elements en incrementant ta variable de boucle
printf("caractere saisi : %c\n",tab[index++]);
Bon Courage !
JSS
//tu recuperes la taille de ta chaine de caractere que tu considere comme un tableau
taille=strlen(tab);
//tu choisis une variable pour faire ta boucle
index=0;
//tu fais une boucle jusqu'au dernier element de ton tableau
while(index<taille)
//tu affiches chacun de tes elements en incrementant ta variable de boucle
printf("caractere saisi : %c\n",tab[index++]);
Bon Courage !
JSS
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Onde2Choc
Messages postés
299
Date d'inscription
vendredi 6 août 2004
Statut
Membre
Dernière intervention
24 février 2006
4
1 sept. 2004 à 08:35
1 sept. 2004 à 08:35
Thecanardwc44, je t'ai pas croisé quelque part sous le pseudo de Paul_Poul par hasard ?
BOOM !
Laissez se propager l'onde de choc...
BOOM !
Laissez se propager l'onde de choc...
Char Snipeur
Messages postés
9696
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 297
1 sept. 2004 à 12:57
1 sept. 2004 à 12:57
Moi, je mettrai plutot "%d" dans printf, sinon tu affiche le caractère, pas le code ASCII, et il faut aussi mettre "unsigned char" comme type, ou ajouter 128 (ou 127 je sais plus) à la valeur ainsi obtenue. Ne pas oublier que char est un type "int" plus petit et 'déguisé'
Salutation !
Char Snipeur
Salutation !
Char Snipeur
JSS
Messages postés
3745
Date d'inscription
jeudi 22 avril 2004
Statut
Contributeur
Dernière intervention
17 décembre 2004
32
1 sept. 2004 à 13:41
1 sept. 2004 à 13:41
yes of course !
moi avoir mal lu la question !
JSS
moi avoir mal lu la question !
JSS
Thecanardwc44
Messages postés
147
Date d'inscription
dimanche 18 juillet 2004
Statut
Membre
Dernière intervention
3 février 2008
5
1 sept. 2004 à 18:07
1 sept. 2004 à 18:07
Dsolé onde2choc ca devai pas etre moi, mon seul otre pseudo c'est royal_couscous spécial garniture (seulement quand ca passe)
Merci a tous pour votre aide
Merci a tous pour votre aide
Thecanardwc44
Messages postés
147
Date d'inscription
dimanche 18 juillet 2004
Statut
Membre
Dernière intervention
3 février 2008
5
1 sept. 2004 à 18:59
1 sept. 2004 à 18:59
J'ai encore un probleme:
Voici mon code:
Mai au lieu d'afficher les codes il me met un nombre a la con qui ne varie pas.
OU EST LE PROB????
En fait je veux faire un prog qui enregistre les codes ASCII e la phrase et qui puisse les modifier(additions...)
Aidez-moi encore un peu
Voici mon code:
char str[30]; printf("Tapez une phrase"); gets(str); printf("Votre phrase : %s",str); JUSQUE LA CA VA printf("Votre phrase en ASCII: %d",str);
Mai au lieu d'afficher les codes il me met un nombre a la con qui ne varie pas.
OU EST LE PROB????
En fait je veux faire un prog qui enregistre les codes ASCII e la phrase et qui puisse les modifier(additions...)
Aidez-moi encore un peu
Hello !
%d, %x... sont, par convention, utilisés pour indiquer à printf, scanf... qu'ils doivent interpréter l'argument correspondant comme un entier. Tu peux donc les utiliser pour les variables de type compatible comme int, short...
Pour ton besoin, imprime caractère par caractère les éléments de ta chaine :
int I;
for (I = 0; I < strlen(str);)
printf("%2x\n", str[I++]);
Take care !
PS : gets ? hou ! Quelle hérésie ! ;)
%d, %x... sont, par convention, utilisés pour indiquer à printf, scanf... qu'ils doivent interpréter l'argument correspondant comme un entier. Tu peux donc les utiliser pour les variables de type compatible comme int, short...
Pour ton besoin, imprime caractère par caractère les éléments de ta chaine :
int I;
for (I = 0; I < strlen(str);)
printf("%2x\n", str[I++]);
Take care !
PS : gets ? hou ! Quelle hérésie ! ;)
Char Snipeur
Messages postés
9696
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 297
1 sept. 2004 à 22:46
1 sept. 2004 à 22:46
en fait, char est un type entier (int) mais ton str est un tableau.
Donc normalement, si j'ai bien tout compris au tableau et aux pointeurs, ton programme affiche l'adresse du pointeur (c'est pas un pléonasme ça?) et non le code ASCII. Tu n'as pas d'autre solution que d'afficher le caractère un à un. ça existe ++ en [C], je croyai que ça n'existait qu'en [C++] et que c'est meme de la que viendrai le nom...(c loin les cours où on m'avait expliquer ça...)
Salutation !
Char Snipeur
Donc normalement, si j'ai bien tout compris au tableau et aux pointeurs, ton programme affiche l'adresse du pointeur (c'est pas un pléonasme ça?) et non le code ASCII. Tu n'as pas d'autre solution que d'afficher le caractère un à un. ça existe ++ en [C], je croyai que ça n'existait qu'en [C++] et que c'est meme de la que viendrai le nom...(c loin les cours où on m'avait expliquer ça...)
Salutation !
Char Snipeur
Onde2Choc
Messages postés
299
Date d'inscription
vendredi 6 août 2004
Statut
Membre
Dernière intervention
24 février 2006
4
2 sept. 2004 à 08:12
2 sept. 2004 à 08:12
++ et -- sont deux opérateurs unaires car ils ne requièrent qu'une seule variable pour travailler... De plus ils sont superutiles je trouve ! C++ est appelé ainsi car c'est une version du C "incrémentée" de quelques nouveaux opérateurs et fonctions (en plus du nouveau principe de POO).
BOOM !
Laissez se propager l'onde de choc...
BOOM !
Laissez se propager l'onde de choc...