Toon posts:

[C] programma laten pauzeren

Pagina: 1
Acties:
  • 195 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
hey,

ik heb een probleempje, ik ben net begonnen met programmeren in c, maar als ik de geschreven programmatje's uitvoer dan flits het resultaat even kort op mijn scherm en dan sluit het weer.:? met welke commando's zou ik dit kunnen voorkomen dat ik mijn programmatjes ook weer pauzeer.

verder als je het weet waar moet ik het dan in het script plaatsen, moet er nog een speciale biblotheek aangehaalt worden, etc. bijv. met een voorbeeldje toelichten.

greets!:)

  • Infinitive
  • Registratie: Maart 2001
  • Laatst online: 25-09-2023
Ik ga even ervan uit dat je met een console programma bezig bent. Als je dat echt binnen je programma wilt regelen, kan je de gebruiker vragen om op enter te drukken en vervolgens een regel tekst lezen. Dit is onderdeel van de stdio library en dat kom je vanzelf en heel snel tegen als je je iets verder in C verdiept ;)

[ Voor 3% gewijzigd door Infinitive op 10-11-2004 15:14 ]

putStr $ map (x -> chr $ round $ 21/2 * x^3 - 92 * x^2 + 503/2 * x - 105) [1..4]


  • Wacky
  • Registratie: Januari 2000
  • Laatst online: 28-04 21:25

Wacky

Dr. Lektroluv \o/

pause(); ?

Dit kun je ook gewoon via google vinden hoor ....

Nu ook met Flickr account


  • InZane
  • Registratie: Oktober 2000
  • Laatst online: 22:28
Wacky schreef op 10 november 2004 @ 15:14:
pause(); ?

Dit kun je ook gewoon via google vinden hoor ....
of sleep(); misschien.

gokje hoor.. heb de ballen verstand van C :P

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
of gewoon een char lezen van je input stream. Dan wacht je programma totdat je een toets hebt ingedrukt.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Verwijderd

^^ dat is ook wel aardig inderdaad :)

Of gewoon een while(1){}
Dan blijft hij non-stop actief bezig met loopen en heb jij alle tijd om te kijken wat er was gebeurd totdat je het zelf afsluit met ctrl-c.
Actief laten wachten is natuurlijk nooit netjes, je kunt dan beter kijken of er geen timers beschikbaar zijn op de processor waar je gebruik van kunt maken o.i.d., maar ik neem aan dat het gewoon programmaatjes zijn die schrjift om C te leren, en dan boeit het natuurlijk niets.
Je kunt ook Windows zelf vragen om even te sleepen. Dan moet je de Windows API aanspreken, tenzij je niet op Windows zit natuurlijk, of alleen zuiver ANSI C wilt programmeren.

[ Voor 4% gewijzigd door Verwijderd op 10-11-2004 15:32 ]


  • riezebosch
  • Registratie: Oktober 2001
  • Laatst online: 04-05 13:09
Oftewel, bovenaan in je code dit opnemen:
#include <conio.h>

En dan op het punt waar je wilt wachten:
getch();

Canon EOS 400D + 18-55mm F3.5-5.6 + 50mm F1.8 II + 24-105 F4L + 430EX Speedlite + Crumpler Pretty Boy Back Pack


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 01:10

.oisyn

Moderator Devschuur®

Demotivational Speaker

Hoi, welkom op GoT :)
Lees ook even de verplichte kost, namelijk De P&W FAQ en De "quickstart"
Daarin staan algemene richtlijnen over het posten in P&W. De Algemene GoT FAQ is natuurlijk ook belangrijk

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • riezebosch
  • Registratie: Oktober 2001
  • Laatst online: 04-05 13:09
Hey .oisyn, als je zo'n reactie geeft gaat dat vaak gepaard met een slotje... Ben je dat vergeten of voldeed de TS toch wel een beetje aan de verplichtingen? Of was het gewoon een welkom vanuit de crew 8-)

Canon EOS 400D + 18-55mm F3.5-5.6 + 50mm F1.8 II + 24-105 F4L + 430EX Speedlite + Crumpler Pretty Boy Back Pack


  • Tjoekbezoer
  • Registratie: Maart 2003
  • Laatst online: 06-12-2025
Je kan toch ook eerst handmatig een console scherm openen (Start->Run...->typ "cmd") en dan vevolgens je programma aanroepen.

Dan loopt ie net zo snel door het programma, maar blijft het resultaat wel in je scherm staan.

  • mace
  • Registratie: Juni 2003
  • Laatst online: 05-05 13:32

mace

Sapere Aude

dat is onhandig, gewoon
#include <conio.h>
getch();

zoals riezebosh zei.

sim-pel

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 09-04 22:08
conio.h is geen standaard C. Tjoekbezoer heeft een nette oplossing, maar vanuit een IDE is dat soms lastig. In een IDE zet je simpelweg een breakpoint op de laatste } van main()

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


  • riezebosch
  • Registratie: Oktober 2001
  • Laatst online: 04-05 13:09
Vaak kan je in de project-settings ook wel instellen dat ie de console niet moet sluiten aan het eind van de uitvoering. In VS staat dat iig standaard aan.

Canon EOS 400D + 18-55mm F3.5-5.6 + 50mm F1.8 II + 24-105 F4L + 430EX Speedlite + Crumpler Pretty Boy Back Pack


Verwijderd

MaCe1337 schreef op 10 november 2004 @ 16:05:
dat is onhandig, gewoon
#include <conio.h>
getch();

zoals riezebosh zei.

sim-pel
Nee, commandline tools verneuken door ze interactief te maken is onhandig :) Het staat zo slordig als je zo'n programma opneemt in een script (batch bestand) en elke keer op enter moet rammen.

Verwijderd

Topicstarter
thanks voor al jullie reactie,

zoals is gezegt ff op google er naar zoeken,

makkelijker gezegt dan gedaan,

ik vind de nederlandse turtorials vaak te kort schieten in informatie,

maar ik ga 's ff wat proberen,

greets!!

[ Voor 3% gewijzigd door Verwijderd op 10-11-2004 22:08 ]


  • ILUsion
  • Registratie: Augustus 2003
  • Laatst online: 08-11-2025
Zelf gebruik ik geen C, maar Delphi (Object Pascal) en op school hadden we Turbo Pascal.
Op school werd een gelijkaardige methode (input vragen) gebruikt, maar dat had als resultaat dat je nog steeds altijd op enter moet drukken, de ingedrukte letter zichtbaar is, ...
Hetgene wat ik daarop gevonden had, waren enkele assembler-opdrachten specifiek voor DOS namelijk:
code:
1
2
 mov AH, 08H
int 21H

Ik weet niet hoe je dat in C kunt integreren, maar het is in ieder geval een optie.
Daarbij is het voor echt functionele programma's (waar je tijdens het leren niet mee in aanraking komt) niet handig om elke keer een toets te laten drukken (hierboven werd enkel vermeld voor batch, maar in een gewone command prompt is het ook niet leuk; voor het debuggen/runnen van je editor natuurlijk wel). Voor je functionele programma's wil ik dus aanraden om parameters te gebruiken en je editor dan instellen om die parameter (bv. "/nopause", "--nopause", "/np", "-np", ... ) mee te geven, zodat je rustig kan debuggen, maar zoals ik al zei: ik ken niets van c af.

Verwijderd

gewoon

cin.get();

maak je gelijk het register leeg dat eventueel vol kan staan met onzin wat je niet wilt.

Verwijderd

Verwijderd schreef op 10 november 2004 @ 22:38:
gewoon

cin.get();

maak je gelijk het register leeg dat eventueel vol kan staan met onzin wat je niet wilt.
ts heeft het over C, dit is C++
Ik zou gewoon getch() gebruiken, waarom moeilijk doen als het makkelijk kan?

  • riezebosch
  • Registratie: Oktober 2001
  • Laatst online: 04-05 13:09
Ik weet niet of je VS.NET gebruikt, maar als je je project op Debug zet ipv Release, krijg je standaard "Press any key to continue..." aan het eind van je programma. Bij Java kon je het altijd instellen in de eigenschappen van het project ("Close console on exit"), maar ik kan het hier even niet terugvinden. Dan zit je tenminste ook niet te klooien met als je later in batch uit wilt voeren je overal alle enters er weer uit moet halen.

Canon EOS 400D + 18-55mm F3.5-5.6 + 50mm F1.8 II + 24-105 F4L + 430EX Speedlite + Crumpler Pretty Boy Back Pack


Verwijderd

code:
1
2
3
4
5
#include <stdlib.h>

// En dan kun je voor een pauze zorgen dmv:

system("Pause");



Succes!

  • epic007
  • Registratie: Februari 2004
  • Laatst online: 11-03 09:21
Verwijderd schreef op 11 november 2004 @ 12:41:
code:
1
2
3
4
5
#include <stdlib.h>

// En dan kun je voor een pauze zorgen dmv:

system("Pause");



Succes!
:r dat is wel de meest lelijke oplossing.

... ik bedoel, zo kan ik ook een texteditor maken:

code:
1
2
3
4
void main()
{
    system("notepad.exe");
}

[ Voor 22% gewijzigd door epic007 op 11-11-2004 16:32 ]


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 01:10

.oisyn

Moderator Devschuur®

Demotivational Speaker

riezebosch schreef op 10 november 2004 @ 23:09:
Ik weet niet of je VS.NET gebruikt, maar als je je project op Debug zet ipv Release, krijg je standaard "Press any key to continue..." aan het eind van je programma. Bij Java kon je het altijd instellen in de eigenschappen van het project ("Close console on exit"), maar ik kan het hier even niet terugvinden. Dan zit je tenminste ook niet te klooien met als je later in batch uit wilt voeren je overal alle enters er weer uit moet halen.
Dat is niet waar, de enige manier om dat te krijgen in vs.net is om het te runnen zonder debugger (ctrl-f5 als je de vs6 settings gebruikt)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • riezebosch
  • Registratie: Oktober 2001
  • Laatst online: 04-05 13:09
Ik doe idd altijd CTRL+F5 (ook nog in VS.NET) :Y)

Canon EOS 400D + 18-55mm F3.5-5.6 + 50mm F1.8 II + 24-105 F4L + 430EX Speedlite + Crumpler Pretty Boy Back Pack

Pagina: 1