C-Problem, løbende indlæsning

dummy (not verified)
Antal: 4294966362
Tilmeldt:
01-01-1970
User is offline
C-Problem, løbende indlæsning

Hej

Jeg sidder med endnu et C-problem

Jeg har behov for at undlæse en tekst, problemet er at det skal foregå løbende.

Dette skyldes at jeg i en uendelig løkke både skal indlæse tekst, sende og modtage til og fra COM-porten og derfor kan den ikke bare stå og vente på at brugeren får indtastet hele sin besked.

har forsøgt med

while(1)
{
if (kbhit()!=0)
{
if ((c=getchar()) != '\n')
{
myString[i]=(char)c;
i=i+1;
}
else
{
//Her sker der så ting og sager med input
}
}
//MODTAG
//SEND
// Evt delay hvis nødvendigt
}

Der sker her dette at ordren bliver indtastet, enter trykkes og det indtastede bliver echoed til konsollen. Men der reageres først på det indtastede ved det efterfølgende tastetryk. Er det muligt at få den til at reagere når brugeren trykker enter ?

Formodentlig benytter jeg kbhit forkert.


mich
mich's picture
Antal: 1156
Tilmeldt:
13-10-2007
User is offline
Re: C-Problem, løbende indlæsning

< disclaimer >Jeg er ikke C-mand, så dette er kun et forslag:
< /disclaimer >
Skal du ikke reagere på Enter for at fortælle programmet, at indtastningen er færdig? F.eks.
if ((c=getchar()) = '\n')
{
input_ready=true;
}


flywheel (not verified)
Antal: 4294966362
Tilmeldt:
01-01-1970
User is offline
Re: C-Problem, løbende indlæsning

Hmmm findes der ikke en funktion der kan se hvilket tegn der er sidst ankomment i keyboard buffer uden at fjerne det ?


Piilen
Piilen's picture
Antal: 228
Tilmeldt:
07-08-2008
User is offline
Brug peek() Syntax int

Brug peek()

Syntax int peek( );
Returns the next character without extracting it from the stream. Returns EOF if the stream is at end of file or if the ipfx function indicates an error.

Held og lykke
Morten


flywheel (not verified)
Antal: 4294966362
Tilmeldt:
01-01-1970
User is offline
Re: C-Problem, løbende indlæsning

Takker for input - flyttede interfacet ind på selve knuden (embedded) og fandt en lukket erstatning for kbhit der havde forputtet sig i en headerfil (Den kræver bare at en ligeledes lukket getchar henter tegnet lige efter), så det lykkedes at få indlæsningen til at virke.