![]() |
Pages (28): « First ... « 6 7 8 9 [10] 11 12 13 14 » ... Last » Show 150 posts per page |
.dsy:it. (http://www.dsy.it/forum/)
- Algoritmi e strutture dati (http://www.dsy.it/forum/forumdisplay.php?forumid=207)
-- Progetto "FACCIALIBRO" (http://www.dsy.it/forum/showthread.php?threadid=37551)
 
sul sito di aguzzoli c'è gcc per win. decomprimi la cartella e poi da riga di comando vai nella cartella e digiti gocs che ti setta le variabili d'ambiente e poi il resto è uguale a gcc in linux.
__________________
by Ð@rk§h@ÐØw
Ti ringrazio Darkshadows!!!
Adesso ci provo..!!
Ti citerò nei ringraziamenti del progetto!!!
![]()
ihihih!!!
__________________
"Amor, ch’a nullo amato amar perdona, mi prese del costui piacer sì forte che, come vedi, ancor non m’abbandona."
*Dante*
iuz-lab ci ho capito poco di tutto quello che hai detto, anche perchè io prima usavo l'originale gets e il prof me lo aveva vietato, cosi sono passato alla scanf, e tutto andava bene ma siccome devo prendere un input con spazi bianchi e quindi ho usato strcat per aggiungerli, mi fa un casino non indifferente..in pratica credo che con la scanf il puntatore venga sovrascritto normalmente, ma nel caso io usi la strcat, sovrascriva solo l'ultimo puntatore, e presto si riempira del tutto lasciando il vecchio contenuto quasi intatto...continuo a provare a ripulire il puntatore, ma perdo tempo per sta cosa..
ti ringrazio per l'interesse, pero non posso copiare il tuo codice o il prof mi fa il culo quando lo vede
__________________
Se non credi in te stesso, chi ci crederà?
allora vedo di essere piu' chiaro..
l'obiettivo è dividere una stringa in modo particolare.. nello specifico (per nick n st):
<spazi bianchi> <nick> <spazi bianchi> <char 'n'> <spazi bianchi> <st>
per farlo il c ti mette a disposizione diverse funzioni utili.. gets e strtok sono quelle che ci interessano..
char *gets(char *s);
Reads next line from stdin into s. Replaces terminating newline with '\0'. Returns s, or NULL on end-of-file or error.
e qui ci troviamo di fronte al problema dell'overflow che puoi risolvere usando readstring (ammesso che io abbia capito quello che dovrebbe fare readstring.. magari mi sto' sbagliando) o la funzione che ho postato o una funzione equivalente..
char* strtok(char* s, const char* ct);
A sequence of calls to strtok returns tokens from s delimited by a character in ct. Non-NULL s indicates the first call in a sequence. ct may differ on each call. Returns NULL when no such token found.
questa funzione è una manna per leggere stringhe del tipo nick n st..
in pratica la prima volta che la chiamiamo gli passiamo come primo parametro il nome della stringa da esaminare e nelle successive chiamate gli passiamo NULL, mentre come secondo parametro gli indichiamo un set di caratteri che funzionano da delimitatori..
per esempio:
code:
char *string = "123 456 789"; char *part; part = strtok(string, " "); do { printf("-- %s --\n", part); } while (part = strtok(NULL, " ") != NULL);
code:
-- 123 -- -- 456 -- -- 789 --
code:
char *string = "bob n i hate facebook"; char *nickname, *action, *status; nickname = strtok(string, " "); action = strtok(NULL, " "); status = strtok(string, ""); // NOTA CHE NON HO DATO ALCUN CARATTERE DELIMITATORE printf("--%s--", nickname); printf("--%s--", action); printf("--%s--]", status);
code:
--bob-- --n-- -- i hate facebook--
code:
char *line; char *nick, *status, *action, *string1; while(line = gets() != NULL) { // qui usa una funzione sicura ma equivalente a gets string1 = strtok(line, " "); // questo è il primo token (non so come chiamarlo finche //non conosco l'azione da intraprendere.. //e questo lo posso capire solo esaminando il secondo token nello switch) action = strtok(NULL, " "); switch(action[0]) { // ... case 'n': nick = string1; // adesso che so che la funzione è 'n' ho capito che il // primo token rappresentava il nickname status = strtok(NULL, ""); // qui ci finirà "status" con eventuali spazi iniziali // elimino gli spazi iniziali (e magari anche finali) da status // faccio le mie sporche operazioni con nick e status break; // ... } }
Originally posted by Benny io prima usavo l'originale gets e il prof me lo aveva vietato, cosi sono passato alla scanf [/B]
Grande iuz-lab ... è esattamente ciò che ho fatto ![]()
ma la fgets si potrà utilizzare ?
ieri sera leggendo tutti i i punti del progetto ho notato:
Per semplicità si suppone che l’input sia sempre conforme alle specifiche delle Tabelle 1,2,3 e 4, per cui
non è necessario controllare la correttezza dell’input. Per leggere l’input si usino le funzioni standard
ANSI C getchar() e/o scanf().
__________________
Perché, mentre il manganello può sostituire il dialogo, le parole non perderanno mai il loro potere; perché esse sono il mezzo per giungere al significato, e per coloro che vorranno ascoltare, all'affermazione della verità. E la verità è che c'è qualcosa di terribilmente marcio in questo paese. (V)
I popoli non dovrebbero aver paura dei propri governi, sono i governi che dovrebbero aver paura dei popoli. (T.J)
Ragazzi io sto implementando tutto tramite liste..
Ma avete pensato a come fare per i gradi di separazione?? 
Non so proprio dove sbatter la testa..
__________________
"Amor, ch’a nullo amato amar perdona, mi prese del costui piacer sì forte che, come vedi, ancor non m’abbandona."
*Dante*
be io conto tutti gli amici che ho, e ci levo 1..
quindi se ho 3 mici nella lista amici, il grado di separazione sarà 2, se ho solo 1 amico, sarà infinito..
il fatto è che non sono sicuro di aver capito la specifica ![]()
ma qualcuno è riuscito a finirlo il progetto??
No aspetta x il grado di separazione io l'ho inteso così:
A amico di B amico di C amico di D
tra A e B il grado è 1
tra A e C il grado è 2
tra A e D il grado è 3
se avessi:
A amico di B amico di C amico di D e E amico di F
tra A e E il grado è infinito
tra A e F il grado è infinito
![]()
..Ho capito male io??? 
__________________
"Amor, ch’a nullo amato amar perdona, mi prese del costui piacer sì forte che, come vedi, ancor non m’abbandona."
*Dante*
quindi tu dici se non sono amici grado infinito,altrimenti se sono amici conta quante persone ci sono tra loro 2
e bo..io non ho capito molto bene il testo, dovrei rileggerlo ma adesso sono in sbatta per far funzionare il tutto correttamente, al max il grado di separazione lo ricalcolo, non mi sembra il problema più grosso..
Originally posted by Joy88
No aspetta x il grado di separazione io l'ho inteso così:
A amico di B amico di C amico di D
tra A e B il grado è 1
tra A e C il grado è 2
tra A e D il grado è 3
se avessi:
A amico di B amico di C amico di D e E amico di F
tra A e E il grado è infinito
tra A e F il grado è infinito
..Ho capito male io???![]()
__________________
"Amor, ch’a nullo amato amar perdona, mi prese del costui piacer sì forte che, come vedi, ancor non m’abbandona."
*Dante*
io alla prima lettura l'avevo interpretata così:
system ! nick nick2
nick e nick 2 devono essere amici, se sono amici conta quante persone ci sono nella lista amici di nick, se è presente solo nick2 fai grado infinito..
ripeto dovrei rileggerla visto che ho dubbi su come l'ho compresa
Originally posted by xSharKMaNx
ma la fgets si potrà utilizzare ?
ragazza ma è sufficiente che il progetto compilato con
gcc -o faccialibro faccialibro.c
non dia nessun errorre o warning o bisogna compilarlo con le opzioni -ansi e -pedantic e quindi
gcc -o -ansi -pedantic faccialibro faccialibro.c
???????
Originally posted by nas
ragazza ma è sufficiente che il progetto compilato con
gcc -o faccialibro faccialibro.c
non dia nessun errorre o warning o bisogna compilarlo con le opzioni -ansi e -pedantic e quindi
gcc -o -ansi -pedantic faccialibro faccialibro.c
???????
| All times are GMT. The time now is 09:02. | Pages (28): « First ... « 6 7 8 9 [10] 11 12 13 14 » ... Last » Show all 417 posts from this thread on one page |
Powered by: vBulletin Version 2.3.1
Copyright © Jelsoft Enterprises Limited 2000 - 2002.