Déconcertant ! :(

cs_Zeroc00l Messages postés 367 Date d'inscription lundi 1 avril 2002 Statut Membre Dernière intervention 11 février 2010 - 3 août 2003 à 15:32
cs_Zeroc00l Messages postés 367 Date d'inscription lundi 1 avril 2002 Statut Membre Dernière intervention 11 février 2010 - 7 août 2003 à 22:58
-={[ Zeroc00l ]}=-

Bon j'ai apris recement a faire du C++

cout affiche du texte une fois inclus iostream.h
scanf recupere des valeur saisie a l'ecran ..

Probleme 1)

Pk sous VC++ 6 :

#include
#include <stdio.h>

int main ()
{
float valeur1, valeur2, valeur3;

cout << "entrez 3 valeurs : ";
scanf ("%f%f%f", &valeur1, &valeur2, &valeur3);
int i;
cin >> i;
return 0;
}

ne Marche pas ?
je ne vois pas la chaine "entrez 3 valeurs : "

Probleme 2)
Cependant si j' enleve :
#include <stdio.h> et le scanf(...)
la chaine s'affiche !!!!!!!!!!!

Probleme 3)
Maintenant si j'execute le probleme 2 Pas a pas (F10)
lorsque je passe sur cout et l'execute, rien n'est affiché !!! C'est seulement une fois que le cin st execute que le cout fonctionne !!!!

KKun a une explication Rationnelle a tout ceci ! je ne comprend pk cela n'affiche pas la chaine alors que gramaticalement c'ets ce qu'on m'a appris dans un bouquin de C++

J'attend vos reponse avec impatience !
MERCI d'avance.

-={[ ZeroCool (qui va bientot peter un cable) :( ]}=-

8 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
3 août 2003 à 15:47
Ben pete pas trop de cable sur cres antiquites qui n'ont plus aucun interet. A part pour faire un compilo ou une console admin, on ne fait plus aucun prog de ce type depuis 10 ans.
BruNews, ciao...
0
cs_Zeroc00l Messages postés 367 Date d'inscription lundi 1 avril 2002 Statut Membre Dernière intervention 11 février 2010
3 août 2003 à 17:07
le but d la question n'est pas de demander votre avis sur l'interet du code mais sur son fonctionnement !
PK ca ne marche pas ? :sad)

-={[ Zeroc00l ]}=-
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
3 août 2003 à 17:11
Compare ce que tu as ecrit avec ce qu'il y a de publie, tu en trouveras des dizaines de machin de ce genre.
Y aurait pas une histoire de 'endl' a mettre apres ecriture par 'cout' ?
BruNews, ciao...
0
cs_Kaid Messages postés 949 Date d'inscription mardi 2 octobre 2001 Statut Membre Dernière intervention 8 juillet 2006 1
3 août 2003 à 19:42
Comme te l'as écrit BruNews, il est possible que tu aies simplement oublié un endl. Exemple pour pas que tu me re-dises que je n'ai pas lu ton code.

cout<<"test"<<endl;


Kaid - kaid.fr.st
0

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

Posez votre question
ADPro22 Messages postés 126 Date d'inscription mercredi 18 juillet 2001 Statut Membre Dernière intervention 27 octobre 2004
4 août 2003 à 00:56
Ce code me semble correct.
La compilation avec gcc 3.2 pour linux donne juste un warning (utiliser iostream plutot que iostream.h)
Le programme compile et s'execute parfaitement sans erreur.

Avec Borland 5.5, pas de pbs de compilation, ni d'affichage mais le prog plante au 2eme argument du scanf...

le endl est défini par (cf ostream.h) :
inline _CRTIMP ostream& __cdecl endl(ostream& _outs) { return _outs << '\n' << flush; }
Mais je reconnais que le flux n'est affiché (avec VC++6.0 chez moi) que si l'on met le endl ou un flush ! (et après ca plante)

Je pense donc que le problème de flux est du a VC++.
Désolé de ne pas apporter de réponse plus précise.

Cordialement,

ADPro22
0
cs_Zeroc00l Messages postés 367 Date d'inscription lundi 1 avril 2002 Statut Membre Dernière intervention 11 février 2010
4 août 2003 à 17:08
Bon au moins kku ns td'accord que quelquchose ne troune pas rond ! :) ca me rassure
BruNew => l'histoire du endl oui peut etre .. mais il n'empeche que les evenements que j'ai décrit restent reels !!!
de plus endl etant egal a \n , la duxieme source que j'ai poster et qui osait probleme pour la ligne cout Combi;
Combi etant un pointeur vers un chaine de caractere !!!
Les element etant tous intialiser a '0' sauf le premier a ' ' et le dernier a '\n'
Et pas de scanf ... A moins que cout n'aime pas afficher des espace ?
Enfin en tout cas regarde le code fais un as a pas (le code s'emble tres complique mais on tombe dessus au pas a pas sans melange ! De plus il n'y a que Combi a suivre de la tete !

Voila si vous avez envie de contribuer à résoudre ce "bug" ....

-={[ Zeroc00l ]}=-
0
cs_Zeroc00l Messages postés 367 Date d'inscription lundi 1 avril 2002 Statut Membre Dernière intervention 11 février 2010
6 août 2003 à 16:06
bon effectivement un ami ( tres cale en C++ pour preuve il a fait : http://cs.unc.edu/~redon/ en assant reMerci Steph !:) ) m'a expliqué :

"Le probleme vient du fait que quand tu fais un cout, les caracteres sont envoyés à un 'buffer' qui stocke ce que tu veut afficher. Quand le buffer est suffisamment plein, ou que tu lui demandes d'aller a la ligne par exemple, il affiche ce qui attend dans le buffer.
Un moyen d'eviter ce genre de probleme est de dire explicitement que l'on veut vider le buffer.
Pour faire ca, il suffit de mettre flush à la fin du cout :

Tu remplaces cout << "entrez 3 valeurs : "; par :

cout << "entrez 3 valeurs : " << flush;
"

Voila !!! Expliqué comme ca je comprend déja mieux !!!
(si vous telech la video du dragon dite moi si elle est bien mon lecteur ne trouve pas les codecs .. :( )

Bon ben c tout !! Problème résolu (chui content je vais pouvoir accélerer mon apprentissage ! Arf ! J'ai pris pas mal de retard ! )

-={[ Zeroc00l ]}=- (qui a réparé son cable)

P.S Il m'a donne aussi de la doc en anglais sur le buffering avec plein d'exemples (tout en anglais ;) ) Si vous les voulez,
no pb, contactez moi !

P.S 2 : ADPro22 tu avais raison mais n'avais pas expliqué pourquoi ! Tu aurais dis comment utiliser flush (je suis pas devin, je commence a peine le C++ :) ) Ca aurait ete bien ! Mais merci quand meme a tous pour l'interet porte à ce problème
0
cs_Zeroc00l Messages postés 367 Date d'inscription lundi 1 avril 2002 Statut Membre Dernière intervention 11 février 2010
7 août 2003 à 22:58
Bon pour les codecs je lui ai dit et il a reglé le problème il a mis un lien alors inutile de me dire que je suis stupide ! Thks

-={[ Zeroc00l ]}=-
0
Rejoignez-nous