webForumDet fria alternativet

"Progressbar" i konsoll

4 svar · 281 visningar · startad av fluff

fluffMedlem sedan juli 200268 inlägg
#1

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
#2

Ä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
#3

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
#4

...eller du kan inte radera föregående tecken? Ajdå, då vet jag ej ;)

nikoMedlem sedan juni 20022 599 inlägg
#5

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".

138 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)