J'ai un problème avec cin.getline!!

Messages postés
19
Date d'inscription
mercredi 1 juin 2005
Statut
Membre
Dernière intervention
24 juin 2005
- - Dernière réponse : Chap71
Messages postés
19
Date d'inscription
mercredi 1 juin 2005
Statut
Membre
Dernière intervention
24 juin 2005
- 6 juin 2005 à 10:54
Voici mon prgm:

#pragma hdrstop
#pragma argsused
#include
#include<fstream>
#include
#include<stdio.h>
using namespace std;


void main(void)
{
struct Planete
{
char NomPlanete[15+1];
char ProdMetal[15+1];
char ProdCristal[15+1];
char ProdDeuterium[15+1];
}ProdPlanete[9+1];
int i;


cout<<"Calcul des productions sur Ogame"<<endl<<endl;


do
{
cout<<"Veuillez saisir le nombre exact de planète(s) que vous poss\202dez:";
cout<<"\n 1)Nombre de Planète"<<endl;
cin>>i;
}while (i<1 && i>9);


if (i=1)
{
cout<<" 2)Le nom de votre Planète "<<1<<endl;
cin.getline(ProdPlanete[1].NomPlanete,16);


cout<<" 3)La production de M\202tal"<<endl;
cin.getline(ProdPlanete[1].ProdMetal,16);


cout<<" 4)La production de Cristal"<<endl;
cin.getline(ProdPlanete[1].ProdCristal,16);


cout<<" 5)La production de Deuterium"<<endl;
cin.getline(ProdPlanete[1].ProdDeuterium,16);



cout<<1<<endl;
cout<
cout<<" 3)La production de M\202tal"<<endl;
cin.getline(ProdPlanete[j].ProdMetal,16);


cout<<" 4)La production de Cristal"<<endl;
cin.getline(ProdPlanete[j].ProdCristal,16);


cout<<" 5)La production de Deuterium"<<endl;
cin.getline(ProdPlanete[j].ProdDeuterium,16);



cout<<j<<endl;
cout<
Afficher la suite 

13 réponses

Messages postés
6
Date d'inscription
mardi 25 mars 2003
Statut
Membre
Dernière intervention
3 juin 2005
0
Merci
salut,
essaye de verfier si la ligne s'execute bien en rajoutant un texte dans ton cout, par ex: cout<< "coucou" << ProdPlanete[j].ProdDeuterium<<endl;
si le coucou apparait mais pas ton resultat c'est que la variable est vide.
Tu peux aussi essayer de rajouter un cout << endl; apres ta ligne defectueuse (j'ai deja eut un probleme de ce genre qui etait que la ligne de prompt arrivait trop vite par rapport a mon afichage)
a+
Commenter la réponse de mrpropre2
Messages postés
19
Date d'inscription
mercredi 1 juin 2005
Statut
Membre
Dernière intervention
24 juin 2005
0
Merci
J'ai essayer, voila ce kil me mark en mode console:


Pourré tu me dir ce kil fo fèr stp? Merci.

Belle de loin mais loin dêtre belle même si la beauté est dans l'oeil de celu qui regarde...
Commenter la réponse de Chap71
Messages postés
6
Date d'inscription
mardi 25 mars 2003
Statut
Membre
Dernière intervention
3 juin 2005
0
Merci
heu ya un probleme: l'image s'affiche pas!
Commenter la réponse de mrpropre2
Messages postés
19
Date d'inscription
mercredi 1 juin 2005
Statut
Membre
Dernière intervention
24 juin 2005
0
Merci
Fé F5!!! lol

Belle de loin mais loin dêtre belle même si la beauté est dans l'oeil de celu qui regarde...
Commenter la réponse de Chap71
Messages postés
6
Date d'inscription
mardi 25 mars 2003
Statut
Membre
Dernière intervention
3 juin 2005
0
Merci
ca change rien, meme sur un autre poste ca passe pas
Commenter la réponse de mrpropre2
Messages postés
19
Date d'inscription
mercredi 1 juin 2005
Statut
Membre
Dernière intervention
24 juin 2005
0
Merci
Ba y mafiche :

test
1900
coucou1600

Test est le nom de planete, 1900 c'est ProdCristal ,1600 c'est le cristal,et "coucou" g lé mi com sa:
cout<<"coucou"<

Belle de loin mais loin dêtre belle même si la beauté est dans l'oeil de celu qui regarde...
Commenter la réponse de Chap71
Messages postés
6
Date d'inscription
mardi 25 mars 2003
Statut
Membre
Dernière intervention
3 juin 2005
0
Merci
en fait j'ai relu ton programme et ya des trucs bizarres, d'abord tu fais un if else qui sert a rien. Tu peux faire ton for meme si le i==1. Ensuite pour faire un test on ecrit if(i==1) et pas if(i=1).
Ensuite pour faire ton for tu peux commencer a 0. comme ca tu utlisiseras tout ton tableau parce que la tu commence a 1 alors qu'en c(++) l'indexage commence a zero generalement.
Ensuite, je suis pas sur, mais je crois que la struct se met hors du main, pares ca marche peut etre comme tu fais car j'ai jamais essayé.
En clair j'aurais plutot fais un code comme ca:

#pragma hdrstop
#pragma argsused
#include
#include<fstream>
#include
#include<stdio.h>
using namespace std;


struct Planete
{
char NomPlanete[15+1];
char ProdMetal[15+1];
char ProdCristal[15+1];
char ProdDeuterium[15+1];
}ProdPlanete[9+1];

void main(void)
{

int i;


cout<<"Calcul des productions sur Ogame"<<endl<<endl;


do
{
cout<<"Veuillez saisir le nombre exact de planète(s) que vous poss\202dez:";
cout<<"\n 1)Nombre de Planète"<<endl;
cin>>i;
}while (i<1 && i>9);

for (int j=0;j<i;j++)
{
cout<<" 2)Le nom de votre Planète "<<j<<endl;
cin.getline(ProdPlanete[j].NomPlanete,16);


cout<<" 3)La production de M\202tal"<<endl;
cin.getline(ProdPlanete[j].ProdMetal,16);


cout<<" 4)La production de Cristal"<<endl;
cin.getline(ProdPlanete[j].ProdCristal,16);


cout<<" 5)La production de Deuterium"<<endl;
cin.getline(ProdPlanete[j].ProdDeuterium,16);



cout<<j<<endl;
cout<
Commenter la réponse de mrpropre2
Messages postés
63
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
25 juillet 2005
0
Merci
quelques remarques et conseils :



1/ pourquoi as tu séparé le cas i=1 et i>1 ?

2/ n'ai pas peur de commencer a remplir tes tableaux à 0, c'est juste une habitude a prendre

3/ tu fais j=1 ; j<i donc si i=2 il ne rentre qu'une fois dedans

4/ if(i=1) surtout pas, tu donne la valeur 1 à i, faut mettre if(i==1)



Sinon, si ca t'intéresse, tu peux faire cout.flush(), qui force l'affichage de son buffer

mais un endl fait la meme chose



Renseigne toi aussi sur les string



en espérant que ca puisse te servir...
Commenter la réponse de darfeuille
Messages postés
19
Date d'inscription
mercredi 1 juin 2005
Statut
Membre
Dernière intervention
24 juin 2005
0
Merci
C'est ce que javé fé au débu mais le ti1 non plu march pa!!
Pa grav fo éséyé otr chose.
MAIS KOI??????

Belle de loin mais loin dêtre belle même si la beauté est dans l'oeil de celu qui regarde...
Commenter la réponse de Chap71
Messages postés
63
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
25 juillet 2005
0
Merci
Ma réponse vient un peut tard, le code de mrpropre2 corrige tout ce que je disais, desole je n'avais pas vu
Commenter la réponse de darfeuille
Messages postés
6
Date d'inscription
mardi 25 mars 2003
Statut
Membre
Dernière intervention
3 juin 2005
0
Merci
tu peux essayer de mettre plusieurs endl entre chaque affichage et meme temporiser ceux ci en inserant des sleep entre pour bien voir le fonctionnement. a force d'essayer tu vas bien trouver le probleme
a+
Commenter la réponse de mrpropre2
Messages postés
19
Date d'inscription
mercredi 1 juin 2005
Statut
Membre
Dernière intervention
24 juin 2005
0
Merci
Merci a ts!!
Jvous redi si sa march plus tar.
a+

Belle de loin mais loin dêtre belle même si la beauté est dans l'oeil de celu qui regarde...
Commenter la réponse de Chap71
Messages postés
19
Date d'inscription
mercredi 1 juin 2005
Statut
Membre
Dernière intervention
24 juin 2005
0
Merci
Salut!!
Ca ne march tjr pa sa doi venir du cin.getline lui mm!!!
C'est pas grav merci a tous et ptète a 1 2 c 4...
Tcho!!

Belle de loin mais loin dêtre belle même si la beauté est dans l'oeil de celu qui regarde...
Commenter la réponse de Chap71