[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
Salutations

Je voudrais savoir quel est l'équivalent de getchar pour les chaines de caracteres?

Merci

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
gets()

COIN!
0
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
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
0
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
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!
0
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
>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
0
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
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
0
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
oui c'est possible.

JSS
0
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
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
0
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
Merci de me présiser comment...

:)
0
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
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
0
Pour la chainde de caractere, utilse la fonction atoi() , c'est beaucoup plus simple !!!
0

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
Thecanardwc44, je t'ai pas croisé quelque part sous le pseudo de Paul_Poul par hasard ?


BOOM !
Laissez se propager l'onde de choc...
0
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
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
0
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
yes of course !

moi avoir mal lu la question !

JSS
0
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
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
0
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
J'ai encore un probleme:

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
0
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 ! ;)
0
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
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
0
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
++ 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...
0
salut tous
je suis une débutante en c
moi aussi jé dé probléme avec le getchar
en fait je voudrais savoir la différence entre cette fonction et le scanf?????
0