fluffMedlem sedan juli 200268 inlägg hej
Jag har en funktion som tar emot X (användarinmatad variabel), och sen loopar X gånger.
I varje slinga sleep():ar programmet 1 sekund, så totalt sleepar den alltså så många sekunder som matas in i X.
Hur skall man "tänka" för att göra en progressbar av detta?
Säg en 70-tecken lång progressbar med "-"-tecken, t.ex så kan outputen se ut så här ->
---------------------------------------------------------------
Där sista "-" är 100%, om man matat in 74 i X så är det alltså 74.
all hjälp uppskattas..
fluffMedlem sedan juli 200268 inlägg Är det ingen som kan hjälpa mig??
jag funderade lite.. kan man göra en funktion dit man skickar procenten & senaste-värdet, sen i den funktionen avgör man om man ska skriva ut ett nytt tecken (beroende på hur många procent det är) eller avvakta..
kanske? :7
ThACRoWMedlem sedan dec. 2001314 inlägg Ta variabeln i från slingan och dela det med X så att du får fram antal procent för stunden. Sen skriver du ut 35 stycken "-" om svaret blir 35%... ?
ThACRoWMedlem sedan dec. 2001314 inlägg ...eller du kan inte radera föregående tecken? Ajdå, då vet jag ej ;)
nikoMedlem sedan juni 20022 599 inlägg Du vill alltså ha en progressbar som visar ett konstant antal "-" oberoende av hur många varv som körs?
Skiss:
#define PROGRESSBAR_SIZE 70
// osv ..
int varv;
float kvot,progress=0;
printf("Varv?\n");
scanf ("%d",&varv);
kvot=PROGRESSBAR_SIZE/(float)varv;
for(int i=1;i<=varv;i++)
{
if(kvot>1)
for(int j=1;j<=(int)kvot;j++) //Avrundningsfel.
{
printf("-");
Sleep(1000/(long)kvot);
}
else
{
if(progress<=i)
{
printf("-");
progress+=(1/kvot);
}
Sleep(1000);
}
}
// osv ..
OBS: Den är buggig för antal varv som är mindre är 70 pga att jag trunkerar "kvot".