Cin.get() ki merde :(

MoDDiB Messages postés 546 Date d'inscription mardi 26 novembre 2002 Statut Membre Dernière intervention 4 mai 2007 - 11 nov. 2003 à 12:49
MoDDiB Messages postés 546 Date d'inscription mardi 26 novembre 2002 Statut Membre Dernière intervention 4 mai 2007 - 11 nov. 2003 à 22:20
voila mon petit prog :
#include

void main()
{
char lettre[100000];
int nombre;

const char ENTER = '\n';

do
{
//Entree le nombre de charactere de la chaine
cin >> nombre ;

}while (nombre <1 || nombre > 100000);

cout<<"Entrer la chaine";

int i= 0;
while ((lettre[i] = cin.get()) != ENTER /*&& i < nombre )
i++;

}

J'aimerais comprendre pourquoi il quitte directement et ne prends pas la peine de lire avec cin.get() ...
Merci bcoup ^^

7 réponses

D1m3x Messages postés 402 Date d'inscription samedi 28 décembre 2002 Statut Membre Dernière intervention 21 juillet 2005 1
11 nov. 2003 à 20:38
Dans ton while tu devrais remplacer le '=' par '==' de cette manière:

while ( ( lettre[ i ] == cin.get( ) ) != ENTER /*&& i < nombre )
...

Je ne suis pas sur que c'est cela, sinon, un petit conseil, dans les app C++ on utilise plus trop les .h des headers, alors remplace la ligne:

#include 


par la ligne:

#include 
using namespace std;


Et puis tu utilise quel compilateur, parce que normalement le '/*' est pris comen un commentaire, alors à partir de ta boucle while il ne se passera plus rien, je ne sais pas s'il existe un opérateur binaire '/*' mais ça m'étonnerait, et puis normalement ce ne serait pas possible de le compiler parce que je ne vois pas de '*/'. Enfin obon, il se peut qu'il existe un opérateur, dit le moi tujours:), j'espère que j'ai réussi à t'aider.

Je ne crois pas qu'il y ait d'autre problème.

Ciao ;)

[DmX]
0
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
11 nov. 2003 à 20:51
pq cin.get() doit etre deja alimenté, chez moi qd g fait cin.ignore(1) juste avant le while, ca marche

int i= 0;
cin.ignore(1);
while ((lettre[i] = cin.get()) != ENTER /*&& i < nombre )
i++;
0
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
11 nov. 2003 à 20:59
Salut,
(lettre[ i ] = cin.get)
le but est ici d'affecter une valeur a lettre[i], pas de la comparer. Donc pas de '=='.
0
D1m3x Messages postés 402 Date d'inscription samedi 28 décembre 2002 Statut Membre Dernière intervention 21 juillet 2005 1
11 nov. 2003 à 21:13
ah oui c'est vrai, bon la c'est clair me suis encore planté ^^ lol mais qu'en est il de ce /* ??

[DmX]
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
11 nov. 2003 à 21:24
Salut,
Honnetement je sais pas, une double-erreur de frappe, ptet.
0
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
11 nov. 2003 à 21:41
oui c une erreur de frappe, mais il voulait vraiment mettre la deuxieme condition en commentaire pour tester uniquement le cin.get()

while ((lettre[i] = cin.get()) != ENTER /*&& i < nombre*/ )
0
MoDDiB Messages postés 546 Date d'inscription mardi 26 novembre 2002 Statut Membre Dernière intervention 4 mai 2007 1
11 nov. 2003 à 22:20
Oui lol c bien une erreur de frappe ^^
merci pr le ignore v tester ca ^^
0
Rejoignez-nous