Char en C++

Résolu
napi15 Messages postés 78 Statut Membre -  
napi15 Messages postés 78 Statut Membre -
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
A voir également:

1 réponse

overcode Messages postés 128 Statut Membre 27
 
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 78 Statut Membre
 
SUPER BIEN!
MERCI!
0