[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
 

putchar/backspace



Hej Alle

Jeg sidder og fedter med nogle printf/scanf og putchar
kommandoer, det fungerer ikke tilfredsstillende.
Problemet er at jeg ønsker følgende kode:

printf("Calculating...");
DoTheCalculation();  // beregningsintensiv funktion
printf("done.\n");

Programmet skriver bare aldrig "Calculating..." før
udregningen er færdig. Hvis jeg derimod skriver 
printf("Calculating...\n"); 
så virker det, men jeg vil jo netop ikke have
linieskift. Så vidt jeg ved skyldes det printf og
putchar er langsomme funktioner og de skriver derfor
til en buffer, som tømmes når den er overfyldt, eller
når den får tid.
Funktionen der kaldes er faktisk så langsom, at jeg
også gerne vil have en form for "progress"-indikator,
fx. med et lille procent tal der løber:
printf("%c%d",8,procent);
Her vil char'en 8 som er backspace, slette det gamle
tal (formodentligt), men igen skrives der intet før
funktionen er beregnet. Denne gang kan jeg ikke løse
det med et linieskift, for så virker backspacen ikke?
Er der ikke en metode hvor man kan tvinge printet ud,
uden linieskift, eller er der i det hele taget en
smartere måde?

Mit program har også en anden irriterende bug, som jeg
ved der sikkert findes en simpel løsning på. Jeg har
en while loop, og i den står et printf og et scanf.
Første gang loopen kører virker det fint, men anden
gang kommer printf sætningen to gange i træk, og hvis
man havde indtastet to cifre ville printet komme tre
gange osv. Jeg har snakket med en Wirus98 bruger, som
siger han kalder flushall() for at løse problemet, men
den ligger selvfølgelig i conio.h.


Sune 



_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com



 
Home   Subscribe   Mail Archive   Index   Calendar   Search

 
 
Questions about the web-pages to <www_admin>. Last modified 2005-08-10, 20:07 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] *