Char en C++

Résolu/Fermé
napi15 Messages postés 71 Date d'inscription mercredi 18 août 2010 Statut Membre Dernière intervention 24 avril 2011 - 5 oct. 2010 à 22:16
napi15 Messages postés 71 Date d'inscription mercredi 18 août 2010 Statut Membre Dernière intervention 24 avril 2011 - 6 oct. 2010 à 04:40
Bonjour,

Admettons que j'ai une chaine de caractere en C++
char name [50]
c'est quoi la difference quand on fait cin>> name[i] et name[i] = getchar() ????
es ce que c'est la memme chose ? les deux sont valides ?
AIDEZ MOI ! LOL
MERCI EN AVANCE

1 réponse

overcode Messages postés 119 Date d'inscription jeudi 6 décembre 2007 Statut Membre Dernière intervention 21 octobre 2011 27
Modifié par overcode le 6/10/2010 à 04:43
Bonsoir,

Est-ce que les deux sont valides ?
Oui. Les deux permettent de saisir des caractères lus sur l'entrée standard, généralement avec un clavier sur une console. Mais ...

Est-ce que c'est la même chose ?
Non. Ce n'est pas la même chose.


cin>> name[i]
c'est du C++, ça requiert l'entête <iostream>. L'instruction lit un caractère à partir de l'entrée standard et le stocke dans name[i].


name[i] = getchar()
c'est du C, (ça reste valide en C++), et ça requiert l'entête <stdio.h>. L'instruction lit aussi un caractère à partir de l'entrée et le stocke dans name[i].


Tu me diras où est donc la différence ?! La grande différence réside dans la façon avec laquelle sont lus les caractères. La première omet (ne lit pas) les caractères blancs, c'est à dire les espaces, les tabulations et les retours chariots, etc ...
La vérification de la lecture pourra se faire en testant l'état du flux cin avec cin.good() et cin.eof() par exemple (eof signifie end of file)

La deuxième lit tout type de caractères, y compris les espaces et les retours chariot. Et en plus, elle ne retourne pas que des caractères, elle peut aussi retourner des valeurs spéciales comme la constante EOF (end of file : fin de fichier, y a plus rien à lire, du tout du tout :):) ).

J'espère que je c'est un peu plus clair maintenant pour toi :)

PS: si tu travaille en C++, les trucs genre
char name[50] ;
ça n'est vraiment pas très recommandé. Si c'est possible, utilise le type string.
1
napi15 Messages postés 71 Date d'inscription mercredi 18 août 2010 Statut Membre Dernière intervention 24 avril 2011
6 oct. 2010 à 04:40
SUPER BIEN!
MERCI!
0