Newsgroup: it.comp.lang.c++
Titolo: Funzione ritardatrice

Salve a tutti è il mio primo mes in questo ng. Vi volevo chiedere come
potevo realizzare un ritardo di un paio di secondi per stampare a
video. Sapevo che esisteva la funzione sleep(), ma il compilatore mi
da errore, non conosco la libreria, e anche il linker mi dice errore.
Come posso fare, ciao e grazie!!!

 Salve a tutti č il mio primo mes in questo ng. Vi volevo chiedere come

Benvenuto....un semplice for senza corpo ?? ;)
La sleep a cui ti riferisci mi pare non sia in alcuna delle librerie std 
C++ - in realta' se e' quella con cui si mette a nanna un processo non 
*puo'* esserci perche' la gestione dei processi e' una feature 
machine-dependent e quindi non contemplata dallo standard, non so se in 
qualche libreria C ma la vedo dura....
Poi, visto che effettivamente hai da far passare solo del tempo, 
rilancio: ciclo for senza corpo.
Aggiunta: che intendi con 'un paio di secondi per stampare a video' ???
Ricordati che ogni operazione e' eseguita sequenzialmente nei programmi 
normali...non devi dare il comando di stampa ( visualizzazione a video ) 
  e preoccuparti di aspettarne l'esecuzione...

 Benvenuto....un semplice for senza corpo ?? ;)
uno di quelli che possono essere ottimizzati via? :)
-- 
sbi


Ti odio :D ...ci avevo pensato...ma vorrei anche sapere cosa intendeva 
con 'aspettare la visualizzazione'.....

 Aggiunta: che intendi con 'un paio di secondi per stampare a video' ???
Molto probabilmente si riferiva a una pausa che consentisse all'utente
di leggere quanto stampato a video, in questi casi basta leggere 
qualcosa dall'input.
Saluti,
Fabio

 qualcosa dall'input.
Ovviamente siamo d'accordo su questo; sicuramente ci saranno centinaia 
di librerie che offrono un servizio del genere, ma esulano dallo 
standard. E' un concetto che si esprime sempre in questo ng, a far ben 
capire che il linguaggio non lo prevede.
Di soluzioni ce ne sono sempre, in realta' comunque aspettavo che mi 
chiarisse il dubbio sull'attesa ( e come dici tu basterebbe in quel caso 
rilevare un carattere dalla tastiera ).

 Come posso fare, ciao e grazie!!!
#include <iostream>
#include <ctime>
int main()
{
    std::clock_t start;
    int ticks = 2 * CLOCKS_PER_SEC;
    std::cout << "Start delay\n";
    start = std::clock();
    while ( std::clock() - start < ticks );
    std::cout << "End delay\n";
    return 0;
}
EMG
--
EMAG Software Homepage:     
http://www.emagsoftware.it
The EMG's ZX-Spectrum Page: 
http://www.emagsoftware.it/spectrum
The Best of Spectrum Games: 
http://www.emagsoftware.it/tbosg

Grazie a tutti, il mio problema č che siccome stampo a video una mappa
sempre nella stessa posizione, si vede sempre il refresh. Mi č allora
venuta in mente di far ritardare la stampa cosě da eliminare il
fastidioso problema visivo...
Nella risposta con il codice posso chiedere all'autore di commentare
le linee di codice per capire meglio il funzionament.
Grazie a tutti di nuovo...

 le linee di codice per capire meglio il funzionament.
E' meglio se mi chiedi cosa esattamente non hai capito.


 EMG
Per il resto penso di capirlo una volta che mi spieghi le righe di
codice che ti ho chiesto... Scusa per curiosità una volta quando
programmavo a scuola in c includevo se non sbaglio la libreria conio e
implemettavo la funzione  sleep(int), ora nel c++ (uso il dev) questa
funzione non c'è???
Ultima domanda c'è differenza tra:
#include <iostream.h> e #include <iostream>
o cumunque una libreria .h e una no?
Grazie troppo gentile.

 o cumunque una libreria .h e una no?
La forma standard è la seconda (senza .h). La prima si utilizzava prima
della standardizzazione del linguaggio. Mi sembra che oggi non sia più
accettata.


...

Sei stato molto chiaro, scusa per il tempo che ti ho fatto perdere ma
è da poco che mi sto avvicinando alla programmazione ad oggetti.
Incontro spesso lo scope ma ancora non ne capisco il significato, e la
differenza tra scope binario e unario. Se non hai tempo di illustrarmi
quest'ultimo dubbio non ti preoccupare mi arrangio da solo... CIAO e
grazie ancora...

 differenza tra scope binario e unario.
Non mi pare (o non mi sovviene al momento) che esista o abbia senso un
concetto di scope binario/unario. Sbaglio?


 EMG
Ok, siamo in un NG che tratta il C++ standard... E su questo non ci piove.
Ma non credete che a volte per volere necessariamente scrivere codice
esclusivamente in C++ standard si finisce per mettere assieme delle cose che
funzionano male?
Mi sembra che in alcuni casi si possa tranquillamente consigliare di usare
le librerie native del sistema operativo sul quale si sta sviluppando e
rimandare ad altri NG per approfondimenti. Per il problema del porting su
altri SO, basta essere ordinati nel mettere sotto compilazione condizionata
le varie parti del programma che usano le specifiche utilità di uno standard
o l'altro.
Tra l'altro il problema delle attese, senza fare loop da 2-3 secondi, è
ampiamente supportato dallo standard POSIX con una miriade di soluzioni che
vanno bene per tutti gli Unix e credo anche per MS-Win. Quindi non si tratta
di "roba" non portabile 'at all'.
Vi immaginate centinaia o migliaia di processi attivi su un server che ogni
volta che devono dare tempo ai propri utenti per leggere un output sullo
schermo si mettono a girare a vuoto in cicli più o meno lunghi?
Non dovremmo insegnare cattive tecniche di programmazione a nessuno, neanche
con la motivazione che comunque si tratta di codice portabile anche sul
tostapane.
In un thread di qualche giorno fa si discuteva su come ottenere la
dimensione di un file. Qualcuno ha voluto necessariamente trovare una
soluzione C++ standard, tra l'altro contestata per non essere affidabile.
Perchè non dire semplicemente che i sono altri modi, in altri standards, per
risolvere il problema in modo sicuramente più professionale? E non mi voglio
ripetere sulle 'compilazioni condizionali' e sulla 'separazione del codice
in moduli' e altre cose del genere...
Saluti,
fabio de francesco
(fabiomdf)
 
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 o l'altro.
Certo. Basta che la discussione della tecnica specifica non avvenga in
questo newsgroup, ma si sposti in uno specifico per la piattaforma in
questione.
Ciao,
Nicola