Gå til innhold

Press any key to continue?


Anbefalte innlegg

Videoannonse
Annonse
Det ser ikke ut til at dette fungerer i Linux, noen som vet hvordan man gjør det der?

 

go'gutten ;) Jeg lurte på det samme :) Har forsåvidt ikke sett noe slikt i Linux, selv om det går ann å lage det. Er vel en mere DOS-ting..

 

Men jeg har ikke svar på ditt spørsmål, lurer bare på det samme :yes:

Lenke til kommentar

"pause" er en systemspesifikk kommando som bare fungerer i dos/windows.

 

getch() og _getch() støttes av noen kompilatorer deriblant Borland og Microsofts.

 

Hvis du ønsker samme funksjonalitet i Linux må du finne en annen løsning. Hvis du googler etter "getch linux" vil du få opp mange alternativer. Det finnes blant annet en port av "conio.h" headeren her:

 

ftp://metalab.unc.edu/pub/Linux/libs/ui/l...-conio-1.02.tgz

 

Ellers er dette kode jeg fant i farta (ikke testet):


#ifndef __GETCH_HEADER

#define __GETCH_HEADER



#include <stdio.h>

#include <unistd.h>



#define echo_on()  term_option(0)

#define echo_off() term_option(1)





inline int getch()

{

     int istat, key;

     char buf[2];



     if (0 > term_option(1))

           return EOF;

     if (0 > term_option(2))

           return EOF;

     istat = read(STDIN_FILENO,&buf,1);

     if (istat < 0)

           key = EOF;

     else  key = (int)buf[0];

     term_option(0);

     return key;

}





#endif//__GETCH_HEADER







//main



#include <ctype.h>





main()

{

     int key;



     printf("Press any key to continue...");

     fflush(stdout);

     key = getch();

     printf("nnYou pressed "%c"n", toupper(key));

}

Lenke til kommentar
pointe me den iriterende press any key meldinga e...?

 

Poenget er at folk som programmerer under f.eks. Windows sliter med at vinduet som programmet kjører i lukkes når det er ferdig å kjøre. Noe som gå på et blunk hvis det er et lite program.

 

Dette fungerer både under Linux og Windows og er i henhold til standaren:

 


#include <iostream>



int main()

{

  std::cerr << "Hello World!" << std::endl;

  

  std::cerr << "Trykk enter for å fortsette" << std::endl;

  std::cin.get();

}

 

Grunnen til at det er vanskelig å lese taster direkte fra konsollet er at konsollet ikke er laget for dette.

Konsollet er basert på muligheten til å svare på forespørsler fra brukeren; "J" (ja) eller "N" (nei). Dette er en fordel siden brukeren kan trykke feil, og må bekrefte med enter og har da en mulighet til å rette på svaret før det er for sent.

 

Jeg tror u-buffret input i Linux er vanlig å implementeres v.h.a. (n)curses, dette vet jeg lite om bortsett fra at det visstok skal være et ganske uoversiktelig bibliotek.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...