Sida 1 av 1

Skumt fel med delay i c++ [LÖST]

Postat: 08 okt 2007, 04:59
av Gryshnozk
Hejsan, jag har stött på ett litet problem med ett program där jag vill ha en del delay lite här och där i programmet.
Jag kan sätta in en delay men när jag försöker lägga in flera i programmet så verkar dom lägga ihop sig på första
stället jag använder det och sen skriva ut allting direkt.

Det jag letar efter är antingen något sätt att fixa detta på eller en annan bra lösning för att få samma resultat.

Kod: Markera allt

#include <iostream>
#include <ctime>

using namespace std;

int vanta(int time);

clock_t delay;
clock_t start;

int main()
{
   char text[10]="Hejsan =)";
   for(int i=0; i<=9; i++)
   {
      cout << text[i];
      vanta(1);
   }
   cout << endl;
}

int vanta(int time)
{
   delay = time * CLOCKS_PER_SEC;
   start = clock();
   while (clock() - start < delay)
      ;
}
Tusen tack för all ev. hjälp.

SV: Skumt fel med delay i c++

Postat: 08 okt 2007, 10:54
av gasol
Kör du ditt program på någon sorts microprocessor med ett nedbantat libc? Annar så bör du använda sleep eller usleep!

Problemet är inte att dom läggs ihop, linux använder buffrade IO, om du kör  cout << text << endl; eller kör flush på cout varje gång i loopen så kommer texten att skrivas ut!

SV: Skumt fel med delay i c++

Postat: 08 okt 2007, 20:05
av Gryshnozk
Jag får kolla upp sleep, anledningen till att jag körde med denna metoden är att boken sa åt mig att göra det av någon anledning. Tusen tack för hjälpen.

Edit: Jag sökte lite efter sakerna du nämnde och det verkar fungera perfekt :)