|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Mar 2008
Messaggi: 401
|
[C]Effetto battitura
Salve, sto lavorando su un grosso programma in C, e ho bisogno di ricreare l'effetto battitura (la frase viene scritta un carattere alla volta), cioè se devo scrivere "ciao" prima scrive "c", poi "i", poi "a" e poi "o", e non tutto insieme.
Come posso fare? |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jan 2007
Messaggi: 1237
|
Banalmente mettendo in pausa il programma (eventualmente utilizzando i thread se vuoi che continuino le altre elaborazioni) tra la stampa di un carattere ed il successivo.
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Mar 2008
Messaggi: 401
|
Ok, ma dato che è da poco che programmo in C, come posso fare a mettere in pausa il programma?
|
![]() |
![]() |
![]() |
#4 |
Member
Iscritto dal: Oct 2007
Messaggi: 83
|
Il C non lo so ma in java e thread.sleep(millisecondi) se ti puo essere utile...magari e simile
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Nov 2008
Messaggi: 530
|
una cosa di questo tipo ti va bene ?
Codice:
#include <stdio.h> #include <time.h> #include <string.h> void Aspetta( clock_t wait ) { clock_t goal; goal = wait + clock(); while( goal > clock() ) ; } int main() { char Stringa[] = "Ciao"; for(register unsigned int i = 0; i < strlen(Stringa); i++) { printf("%c", Stringa[i]); Aspetta(250); } printf("\n"); return 0; } |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Mar 2008
Messaggi: 401
|
Grazie, ma mi basta creare una funzione usano il metodo sleep(), l'ho trovato ora.
|
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
<ot>Ma tu non stavi studiando Java? Cosa ti ha infelicemente portato sulla strada del C?</ot>
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
![]() |
![]() |
![]() |
#8 |
Bannato
Iscritto dal: Mar 2008
Città: Villabate(PA)
Messaggi: 2515
|
|
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Jan 2007
Città: villa verucchio
Messaggi: 1921
|
potresti fare una cosa di sto tipo
char titolo[20]="Scritta Iniziale"; int i; for (i=0; i<strlen(titolo); i++) { printf("%c",titolo[i]); Sleep(MILLISEOCNDI); }
__________________
CPU: Amd Phenom II 955--MB: Gigabyte GA-890GPA-UD3H--RAM:4 GB DDR3--SV: ATI Radeon HD 5770--HD: Western Digital Caviar Black 500 gb--ALI:: Corsair 650w--MONITOR: SyncMaster P2270--ROUTER: Netgear DG834G--SO: Win 7 Professional 64 bit |
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Esatto Vincenzo, è quello l'unico vero difetto del C: i principianti si ritrovano a fare macelli senza accorgersene e... BUM!, il programma è andato.
Io programmo in C da anni e non voglio certo rinnegarmi, ma riconosco che per iniziare a programmare può essere un'arma a doppio taglio. Se comprendi bene gli argomenti, li comprendi dalle basi, e conosci anche "ciò che c'è sotto", ma la curva d'apprendimento è più ripida ed è più alto il rischio che il programmatore in erba (non fraintendete ![]() Insomma, Java ha un "look and feel" simile, ma con molta pappa già pronta e un minor rischio di perdersi in argomenti oscuri come puntatori ed allocazioni dinamiche. Mi chiedevo solo perché avesse scelto di passare al C, visto che già aveva tanto di Java sotto mano. ![]()
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
![]() |
![]() |
![]() |
#11 | |
Bannato
Iscritto dal: Mar 2008
Città: Villabate(PA)
Messaggi: 2515
|
Quote:
![]() |
|
![]() |
![]() |
![]() |
#12 |
Senior Member
Iscritto dal: Nov 2008
Messaggi: 530
|
|
![]() |
![]() |
![]() |
#13 | |
Senior Member
Iscritto dal: Jan 2007
Città: villa verucchio
Messaggi: 1921
|
Quote:
![]() non me ne ero proprio accorto!
__________________
CPU: Amd Phenom II 955--MB: Gigabyte GA-890GPA-UD3H--RAM:4 GB DDR3--SV: ATI Radeon HD 5770--HD: Western Digital Caviar Black 500 gb--ALI:: Corsair 650w--MONITOR: SyncMaster P2270--ROUTER: Netgear DG834G--SO: Win 7 Professional 64 bit |
|
![]() |
![]() |
![]() |
#14 |
Senior Member
Iscritto dal: Mar 2008
Messaggi: 401
|
Grazie mto89, comunque dopo il java (molto tempo fà), ho fatto javascript, poi html, quindi php e sql, poi un pò di perl e ora il C. La prossima tappa sarà C++
![]() Edit:Ho creato una funzione come la tua, solo che al posto dell'array ho messo un puntatore (così si autodimensiona) e poi sleep prende in input i secondi, quindi ho messo 0.05, ma scrive solo la prima lettera e si ferma!!! Come mai? Il metodo sleep non dovrebbe fermare il programma per i secondi presi in input e poi riprenderlo? Edit2:impostando i secondi a 1, 0.5, 0.25 va; se li metto 0.1 (forse anche 0.2) o meno, nn va più. Edit3:Il metodo funziona solo se i secondi sono maggiori o uguali a 2.5. Passando un valora minore, stampa un solo carattere e va in crash. Ultima modifica di agente mm8 : 10-12-2008 alle 17:17. |
![]() |
![]() |
![]() |
#15 |
Senior Member
Iscritto dal: Nov 2008
Messaggi: 530
|
|
![]() |
![]() |
![]() |
#16 | |
Senior Member
Iscritto dal: Nov 2008
Messaggi: 530
|
Quote:
GUARDA CHE FUNZIONA UNA MERAVIGLIA. |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 03:00.