Avatar billede krismort Nybegynder
09. september 2002 - 23:14 Der er 1 kommentar og
1 løsning

Konsol program ?

Jeg kunne godt tænke mig at lave en slags konsol hvor man kan skrive kommandoer som en slags prompt og samtidig modtage infomationer angående events i programmet.
Det er ikke svært at lave et program som fungerer som en slags prompt det kunne gøres med cin / cout ... problemet opstår så snart programmet sender informationer om event ud med feks cout mens jeg bruger cin.
Er der en som har en løsning til hvordan jeg kan holde tekstinformationer om events i programmet og infomation fra mine kommandoer/prompt linie (cin) adskildt på en hensigtsmæssig måde?

Kristian
Avatar billede krismort Nybegynder
09. september 2002 - 23:19 #1
((events = begivenheder i mine tråde), jeg bruger tråde og det er derfor programmet ikke blokerer når jeg bruger cin)
Avatar billede lasse_buck Nybegynder
09. september 2002 - 23:36 #2
Lad intput/output af tekst være styret i sin egen tråd.

Lad tråden aflæse enkelttegn direkte fra tastaturet. Derved er man ikke låst medens der ventes på ENTER. De intastede tegn gemmes i en intern buffer og skrives samtidig på skærmen. Hvis en kommando afsluttes med ENTER, udføres kommandoen og bufferen tømmes.

Skulle der i mellemtiden komme en event fra en anden tråd så:
1. Sletter man det aktuelle input på skærmen.
2. Skriver den aktuelle event.
3. Skifter linie.
4. Skriver indholdet af input-bufferen igen, så brugeren kan fortsætte med at skrive sin kommando.

Derved skriver brugeren altid i nederste linie, medens events bliver indsat lige over den aktuelle indtastningslinie.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester