[an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] (none) [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] (none) [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive]
 
[an error occurred while processing this directive] [an error occurred while processing this directive]
Skåne Sjælland Linux User Group - http://www.sslug.dk Home   Subscribe   Mail Archive   Forum   Calendar   Search
MhonArc Date: [Date Prev] [Date Index] [Date Next]   Thread: [Date Prev] [Thread Index] [Date Next]   MhonArc
 

Re: [PROGRAMMERING] RE:#2 [PROGRAMMERING] C selvsving



...
> Men fik:
> parser erro before `if´
> 
> Jeg prøvede også med:
> 
> 	while( venus != 'B' );  


Du afslutter din while løkke på samme linie du deklarerer den - det må
man godt, men det giver ikke det resultat du forventer:

while (venus != 'B');

er identisk med

while (venus != 'B') { }

Og din blok nedenunder er blot unødvendig. Du må starte blokke så tit du
lyster, f.eks.:

{
 refresh();
}
{
 venus=getch();
}

Er fuldstændigt identisk med de to første linier i den blok du
deklarerede nedenfor.


> 	{   
> 	refresh();      
> 	venus=getch();	
> 
> 		if(venus == 'a')	  
> 			system("ls");   
> 		
> 		if(venus == 'c')	  
> 			system("ps");   
> 		
> 
> 	}   


Det kan være det er lettere at se hvis jeg skriver dit program om til
det fuldstændigt identiske:


--------------
while( venus != 'B' )
{
}
refresh();
venus=getch();

        if(venus == 'a')
                system("ls");

        if(venus == 'c')
                system("ps");
--------------

Ovenstående er præcist det samme som dit eksempel. Det er bare lidt
tydeligere at se hvorfor det ikke virker.

> 
> Det program kunne godt kompileres men det fungerede ikke når jeg tasteded "a" fik jeg kun en-og-anden hørbar aktivetet i computeren, 

Formegentligt fra din strømforsyning  ;)

> men inge ting på skærmen.

Fordi CPU'en kørte sammenligningen

 while (venus != 'B') { }

så hurtigt som den kunne, men lige meget hvor mange gange den
sammenlignede, blev venus aldrig til 'B'     ;)

...
> 
> 	}while( venus != 'B' );    
> 	
> 	printw("\nTak for denne gang\n");
> 	
> 	endwin();
> 
> 	return 0;
> }

Jeg kender ikke selv Curses - men jeg vil tro at du kunne skrive:

endwin();
printf("\nTak for denne gang\n");
return 0;


Det vil, som jeg lige kan gætte, afslutte Curses håndteringen af
skærmen, og derefter bruge standard 'printf' kaldet til at skrive en
linie på konsollen.

 / jakob



 
Home   Subscribe   Mail Archive   Index   Calendar   Search

 
 
Questions about the web-pages to <www_admin>. Last modified 2005-08-10, 22:43 CEST [an error occurred while processing this directive]
This page is maintained by [an error occurred while processing this directive]MHonArc [an error occurred while processing this directive] # [an error occurred while processing this directive] *