Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1931 connectés 

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Suivante
Auteur Sujet :

cout -> outtext [résolu]

n°530342
amsterdam
Posté le 03-10-2003 à 14:52:45  profilanswer
 

Reprise du message précédent :


# include <fstream.h>
# include <iostream.h>
# include <STDLIB.h>
# include <conio.h>
# include <stdio.h>
# include <graphics.h>
 
 
int main(void)
{
    int y=20;
 char ligne[256];
 int graphdriver = DETECT;
 int graphmode= 0;
 initgraph(&graphdriver,&graphmode, "d:\\TC\\BGI" );
 
        ifstream f("c:\\menu.txt" );
        while(f.getline(ligne,255))
        {
        outtextxy(20,y,ligne);
        y = y+80;
        }
    f.close();
    closegraph();
 
 
    system("c:\\windows\\notepad.exe" );
     
 
    system("pause" );
 
 
return 0;
}


A peu près la même chose en c++, sauf que là le menu s'affiche mais l'appli reste bloquée donc il doit y avoir une autre erreur qui n'as rien à voir avec le BGI. :d


Message édité par amsterdam le 03-10-2003 à 15:31:26
mood
Publicité
Posté le 03-10-2003 à 14:52:45  profilanswer
 

n°530356
amsterdam
Posté le 03-10-2003 à 15:02:40  profilanswer
 

Ce ne serait point un problème de boucle infinie par hasard ?

n°530379
bjone
Insert booze to continue
Posté le 03-10-2003 à 15:25:41  profilanswer
 

c'est quoi le begin {} end; ?

n°530382
amsterdam
Posté le 03-10-2003 à 15:28:42  profilanswer
 

Il n'y est pas c'est juste une erreur de copier coller, je rectifie. :d

n°530422
bjone
Insert booze to continue
Posté le 03-10-2003 à 16:13:21  profilanswer
 

pendant un moment j'ai eu peur :D

n°530425
bjone
Insert booze to continue
Posté le 03-10-2003 à 16:15:08  profilanswer
 

y reste bloqué à l'affichage ?
 
dans ce cas c'est le while...

n°530426
amsterdam
Posté le 03-10-2003 à 16:15:10  profilanswer
 

J'suis neuneu mais quand même. :lol:

n°530429
bjone
Insert booze to continue
Posté le 03-10-2003 à 16:21:01  profilanswer
 

est-ce que le closegraph() est fait ?

n°530431
amsterdam
Posté le 03-10-2003 à 16:24:06  profilanswer
 

Comment ça ?
J'ai un closegraph(); dans le code et outtextxy fonctionne...
Par contre après l'écran est figé et je doit tuer l'appli.

n°530432
bjone
Insert booze to continue
Posté le 03-10-2003 à 16:24:43  profilanswer
 

le closegraph() te ramènes en mode texte.
 
est-ce que quand tu est bloqué, tu vois encore ton menu ?


Message édité par bjone le 03-10-2003 à 16:26:22
mood
Publicité
Posté le 03-10-2003 à 16:24:43  profilanswer
 

n°530433
bjone
Insert booze to continue
Posté le 03-10-2003 à 16:26:13  profilanswer
 

supprimme le system("pause" ), et utilise un exec..() à la place de system (tu est ptet court en mémoire conventionnelle, et le lancement du notepad échoué, même si c'est une appli Win32, la section DOS doit être appellée...)

n°530437
amsterdam
Posté le 03-10-2003 à 16:31:14  profilanswer
 

J'avait déjà virer le pause et il ne veut pas du exec.
Par contre dans ma boucle il n'est pas question de eof...
Sinon exec et system fonctionnent bien tout seul sans prob tant que initgraph ne vient pas foutre sa m*****.

n°530453
bjone
Insert booze to continue
Posté le 03-10-2003 à 16:46:12  profilanswer
 

Code :
  1. #include <iostream.h>
  2. #include <fstream.h>
  3. #include <stdio.h>
  4. #include <graphics.h>
  5. #include <process.h>
  6. int main(void)
  7. {
  8. // ouverture fich
  9. ifstream f("c:\\menu.txt" );
  10. if( !f ) // test echec
  11. {
  12.  perror("c:\\menu.txt" );
  13.  return 1;
  14. }
  15. // initgraoh
  16. int graphdriver = DETECT;
  17. int graphmode;
  18. initgraph(&graphdriver,&graphmode, "C:\\SRCDEV\\BC\\BGI" );
  19. // charge & affiche
  20. char ligne[256];
  21. int y=20;
  22. while(f.getline(ligne,255))
  23. {
  24.  outtextxy(20,y,ligne);
  25.  y = y+80;
  26. }
  27. closegraph();
  28. execl("c:\\windows\\notepad.exe",NULL);
  29. return 0;
  30. }


 
chez moi ça marche.
 

n°530458
bjone
Insert booze to continue
Posté le 03-10-2003 à 16:53:57  profilanswer
 

Code :
  1. #include <iostream.h>
  2. #include <fstream.h>
  3. #include <stdio.h>
  4. #include <conio.h>
  5. #include <graphics.h>
  6. #include <process.h>
  7. int main(void)
  8. {
  9. // ouverture fich
  10. ifstream f("c:\\menu.txt" );
  11. if( !f ) // test echec
  12. {
  13.  perror("c:\\menu.txt" );
  14.  return 1;
  15. }
  16. // initgraoh
  17. int graphdriver = DETECT;
  18. int graphmode;
  19. initgraph(&graphdriver,&graphmode, "C:\\SRCDEV\\BC\\BGI" );
  20. // charge & affiche
  21. char ligne[256];
  22. int y=20;
  23. while(f.getline(ligne,255))
  24. {
  25.  outtextxy(20,y,ligne);
  26.  y = y+80;
  27. }
  28. getch();
  29. closegraph();
  30. f.close(); // vu que l'exec écrase l'image du process courant, la destruction ne sera pas faite
  31. execl("c:\\windows\\notepad.exe",NULL);
  32. cout<<"ça ça sera pas fait par exemple avec exec sous dos\n";
  33. return 0;
  34. }


 
petite rectif...
 
exec sous dos écrase le process appellant, cad, que le process appellant est tué méchamment (donc le reste du code n'est pas éxécuté, et ce qui serait détruit par les destructeur des classes C++ automatiquement à la fin du main n'est pas fait)
 
mais vu le peu de mémoire conventionnelle que tu as sous, vo mieux utiliser exec.
 
sinon tu as spawn qui permet de consever le process appellant (donc ton appli), mais si tu appelle un programme DOS et pas un programme Win32, tu peux manquer de mémoire conventionnelle.


Message édité par bjone le 03-10-2003 à 16:57:20
n°530466
amsterdam
Posté le 03-10-2003 à 17:08:49  profilanswer
 

Bah chez moi non. :/
Déjà il ne veut pas du getch();
Ensuite j'ai droit à un graph not initialised...
D'ou vient ton execl ?


Message édité par amsterdam le 03-10-2003 à 17:09:28
n°530498
bjone
Insert booze to continue
Posté le 03-10-2003 à 17:57:43  profilanswer
 

c'est vrai que c'est Turbo C++ que tu utilises (y se fait un peu vieux :D)
 
fodrait que tu chopes Borland C++ 3.1 sous DOS, ce sera toujours mieux...

n°530500
bjone
Insert booze to continue
Posté le 03-10-2003 à 17:59:11  profilanswer
 

sinon le graph not initialised viens du chemin d'accès aux BGI qui sont pas les même chez moa et chez toa.
 
le getch() a pas ? fait un CTRL-F1 dessus pour voir...

n°530514
amsterdam
Posté le 03-10-2003 à 18:33:51  profilanswer
 

Pour le chemin du bgi j'avais pensé à le modifier donc...
Pour le getch il faut rajouter <conio.h>.
Sinon le compilo de borland version 5 et gratuit peut il compiler un exe pour DOS parce que pas moyen de trouver Borland C++ 3.1 à part peut être avec la mule mais à 0.7ko/s j'suis pas rendu(~18mo). :lol:

n°530518
bjone
Insert booze to continue
Posté le 03-10-2003 à 18:40:28  profilanswer
 

bah le problème du compilo borland 5 (celui de C++ Builder), c'est qu'il risque d'être trop récent par rapport à TC/BC (pas de support pour le mode réel du DOS ptet, pas de librairies graphiques BGI pour le dos ... etc etc...)

n°530520
bjone
Insert booze to continue
Posté le 03-10-2003 à 18:42:34  profilanswer
 

sinon c'est juste l'execl qui passe pas, avec un spawnl(P_OVERLAY,...) tu auras le même comportement...

n°530521
amsterdam
Posté le 03-10-2003 à 18:43:19  profilanswer
 

Sinon le graph fonctionne c'était juste une fôte de frappe de ma part(pastapper).
Tant pis j'attendrai que la mule ai fini.

n°530525
bjone
Insert booze to continue
Posté le 03-10-2003 à 18:47:48  profilanswer
 

donc c bon ou pas ?

n°530529
amsterdam
Posté le 03-10-2003 à 18:51:39  profilanswer
 

Non j'ai toujour le prob du execl.
Je regarde du cote de spawn pour l'instant.

n°530537
amsterdam
Posté le 03-10-2003 à 18:58:06  profilanswer
 

Si je fait spawnl(P_OVERLAY,"c:\\windows\\notepad.exe" );
Ca ne fait rien. :(

n°530765
bjone
Insert booze to continue
Posté le 03-10-2003 à 21:54:55  profilanswer
 

ça compile ?

n°530769
amsterdam
Posté le 03-10-2003 à 21:57:46  profilanswer
 

Vi. :sol:


Message édité par amsterdam le 03-10-2003 à 21:58:00
n°530771
bjone
Insert booze to continue
Posté le 03-10-2003 à 21:58:15  profilanswer
 

sinon c'est normal, si tu lances un exe Win32 sous Dos, il te sort "This program cannot be run in DOS mode"

n°530776
amsterdam
Posté le 03-10-2003 à 22:02:32  profilanswer
 

Pour l'instant je me contente de faire les essais sous win.
Mais j'ai testé sous dos en lancant edit.com et ça marchait, à condition comme sous win de ne pas avoir de graph.
 

n°530799
bjone
Insert booze to continue
Posté le 03-10-2003 à 22:20:07  profilanswer
 

la problème est pas là.
 
c'est que je viens de faire des essais, et j'arrive à exec/spawn/system un process Win32 à partir d'un process DOS.
 
ce que je comprends pas, c'est que depuis command.com tu peux appeller des exe Win32, alors que depuis l'exe généré depuis BC, le process démarre sa section DOS et ne bascule pas sur sa section Win32 :/

n°530812
amsterdam
Posté le 03-10-2003 à 22:32:44  profilanswer
 

Code :
  1. # include <io.h>
  2. # include <iostream.h>
  3. # include <string.h>
  4. # include <fstream.h>
  5. # include <stdlib.h>
  6. int main(void)
  7. {
  8. system("c:\\windows\\notepad.exe" );
  9. return 0;
  10. }


Ca ça fonctionne, sauf que nivo interface c'est moyen.  :lol:  :cry:


Message édité par amsterdam le 03-10-2003 à 22:33:36
n°530953
burgergold
5$? va chez l'diable!
Posté le 04-10-2003 à 02:14:04  profilanswer
 

jvais envoyer ce lien, si jamais ca vous est utile
 
http://www.cplusplus.com/ref/iostr [...] /read.html


---------------
http://www.boincstats.com/signature/user_664861.gif
n°530963
bjone
Insert booze to continue
Posté le 04-10-2003 à 02:18:33  profilanswer
 

heu le problème est pas dans le read()
 
par contre comprends pas pourqué ça marchait pas tout à l'heure le system...

n°530965
bjone
Insert booze to continue
Posté le 04-10-2003 à 02:22:27  profilanswer
 

bon bah c'est bon system ça marche tout le temps...
 
par contre, si tu fais un system() d'un prog dos tu peux être de mémoire conventionnelle.... (vu que le system conserve en mémoire le programme appellant)

n°530966
amsterdam
Posté le 04-10-2003 à 02:25:02  profilanswer
 

Le system a toujours fonctionné....tout seul. :d
C'est dès que je l'ai integré au mode graph que ça a été le b*****. :fou:

n°530971
burgergold
5$? va chez l'diable!
Posté le 04-10-2003 à 02:32:23  profilanswer
 

BJOne a écrit :

heu le problème est pas dans le read()
 
par contre comprends pas pourqué ça marchait pas tout à l'heure le system...


 
non en effet, mais à la fin de l'exemple ya un cout, alors jme suis dit...


---------------
http://www.boincstats.com/signature/user_664861.gif
n°530972
amsterdam
Posté le 04-10-2003 à 02:34:17  profilanswer
 

J'utilise plutôt outtextxy et les trucs du BGI ce qui est le problème. :)

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Suivante

Aller à :
Ajouter une réponse
 

Sujets relatifs
[C++] Dernier sujet sur les dialogbox [resolu]chtite question sur system [résolu]
Créer automatiquement (sous dos) repertoire avec date [RESOLU][RESOLU]Ma commande SQL INSERT INTO ne fonctionne plus !
SVG 1.1 et xlink : pourquoi c'est plus lent ? [Résolu][VBA] Rapatriement d'une requête ! [Resolu]
[Delphi] Stockage d'un mot de passe. [Résolu][resolu] Synchroniser un texte descriptif et des images en float
une requete sur les resultats d'une autre requete ??? [résolu][resolu] [html] IE fait un passage à la ligne apres un <form>
Plus de sujets relatifs à : cout -> outtext [résolu]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR