[c++] Probleme avec getchar()

Thecanardwc44 Messages postés 147 Date d'inscription   Statut Membre Dernière intervention   -  
 Peps -
Salutations

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

Merci

12 réponses

Canard007 Messages postés 5931 Date d'inscription   Statut Contributeur Dernière intervention   215
 
gets()

COIN!
0
Ravachol Messages postés 566 Date d'inscription   Statut Membre Dernière intervention   120
 
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 5931 Date d'inscription   Statut Contributeur Dernière intervention   215
 
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 566 Date d'inscription   Statut Membre Dernière intervention   120
 
>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   Statut Membre Dernière intervention   5
 
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   Statut Contributeur Dernière intervention   32
 
oui c'est possible.

JSS
0
JSS Messages postés 3745 Date d'inscription   Statut Contributeur Dernière intervention   32
 
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   Statut Membre Dernière intervention   5
 
Merci de me présiser comment...

:)
0
JSS Messages postés 3745 Date d'inscription   Statut Contributeur Dernière intervention   32
 
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
Peps
 
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   Statut Membre Dernière intervention   4
 
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 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
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   Statut Contributeur Dernière intervention   32
 
yes of course !

moi avoir mal lu la question !

JSS
0
Thecanardwc44 Messages postés 147 Date d'inscription   Statut Membre Dernière intervention   5
 
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   Statut Membre Dernière intervention   5
 
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
Jolkdarr
 
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 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
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   Statut Membre Dernière intervention   4
 
++ 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
sousouwa
 
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