mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c
Titolo: clock_t e la temporizzazione

Ciao a tutti,
sto lavorando con un blocco di codice.
Ho 2 var di tipo clock_t        
inizio_idle = clock();
[...]
// blocco di lavoro
[...]
fine_idle = clock();
alla fine vorrei sapere la differenza tra inizio_idle e fine_idle ma non so
come stamparlo con la printf...
ad es: printf("diff: %lf\n", fine_idle - inizio_idle);
idee? ;)
-- 
Carlo

 idee? ;)
clock_t dovrebbe essere definito come long int. ptova a stamparlo come 
intero.
ciao.

 idee? ;)
c'eri quasi:
printf("differenza: %lf\n",
   ((float)(fine_idle - inizio_idle))/CLOCKS_PER_SEC);
-- 
Mat/tia Belletti - Undergraduate student @ 
cs.unibo.it
ICQ: 33292311    - email: 
mbel...@cs.unibo.it
IRC: RedGlow     - site(s): 
http://mbellett.web.cs.unibo.it/
Jabber: RedGlow  - Linux registered user 299762 @ machine 213003

 
il mio obiettico e' visualizzare i Colpi di Clock che passano. Con la tua
soluzione ho sempre 0. Ho provato a levare CLOCKS_PER_SEC ma il
comportamento e' strano.
Cosa mi rapperesenta esattamente la chiamata clock(); ??
..
DESCRIPTION
The clock() function returns an approximation of processor time used by the
program.
..
in che unita' di tempo e' l'approximazione della CPU?
ciao ;)
-- 
Carlo

cane ha scritto:

Per tagliare testa al toro, direi di stamparlo come long, forzando anche il
risultato della sottrazione a long:
    printf("diff: %ld\n", (long)(fine_idle - inizio_idle));
(Attenzione però che, supponendo 100 clock al secondo, potrebbe cominciare a
stampare valore errati dopo che il programma ha girato continuativamente per
circa 2,9 miliardi di anni. :o)
--
Cingar
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 Cingar
ok ;)
-- 
Carlo

 in che unita' di tempo e' l'approximazione della CPU?
In quella che tu chiami "colpi di clock", o "tick", come li sentivo 
chiamare una volta. Che in ogni caso non c'entra con una 
"approssimazione della CPU", qualunque significato si voglia attribuire 
a questa espressione - se mai, sara' una "approssimazione del timer di 
sistema". Comunque: in ogni secondo, ce ne sono CLOCKS_PER_SEC. Per 
aggiungere un po' di info: l'ANSI non da limiti per questo valore, 
mentre POSIX richiede che CLOCKS_PER_SEC = 1000000 (un milione).

Newsgroup: it.comp.lang.c
Titolo: Compilatore

Salve a tutti,
sono un neofita totale del linguaggio e volevo chiedere un consiglio banale ma
utile per iniziare!!Mi consigliate(anche dove trovarlo!) un compilatore per c
facile da utilizzare!!
Grazie
Gianni
-- 
Posted from  [212.171.229.26] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 ha scritto nel messaggio
news:71a1c8364bc33481e07...@mygate.mailgate.org...

http://www.borland.com/bcppbuilder/freecompiler/cppc55steps.html

 ha scritto nel messaggio
news:9r9kla$dg$1...@nreadb.inwind.it...


 compilatore per c facile da utilizzare!!
su 
cpp.programmazione.it
, sezione link trovi diversi siti da cui puoi 
scaricare gratuitamente un compilatore.
Per quel che riguarda la "facilita' d'uso" immagino che tu non ti 
riferisca al compilatore ma all'eventuale IDE fornita a corredo; in 
questo caso, sempre nell'ambito del free software, ti consiglio "Dev 
C++".
ciao Anto
-- 
Antonio Cuni, 19 anni, studente
Brainbench C++ Master: 4.6, higher than 98% of all previous test takers.
C Language: 3.32, higher than 79% of all previous test takers.
Guida C/C++ di Programmazione.it: 
http://cpp.programmazione.it
Newsgroup: it.comp.lang.c
Titolo: Programma che simula un Server il lingauaggio c

Qualcuno sa dirmi come posso procurarmi listati o informazioni che mi
possano aiutare a scrivee un programma che simuli il comportamento di
un server tramite linguaggio c.
Grazie



Che server ? SMTP, POP, WEB, NNTP, ...
www.sourceforge.net
-- 
 __
| _         "The Internet is slow, could you please reboot it ?"
|__|iambo   mailto:
gabr...@giambonini.com
 
www.giambonini.com

Newsgroup: it.comp.lang.c
Titolo: Debug

velocissimo, ma se non la sai portare, ti schianti e ti fai male !
Niente limitatore di velocita' per i neo patentati ? Peccato :-(
Comunque, ho detto che volevo parlare di debug e quindi parliamo di
quello.
Supponiamo di avere un programma che nella stragrande maggioranza dei
casi funziona bene. Di tanto in tanto esce pero' un crash o inizia a
fare cose buffe (ad esempio scrive sempre e solo su una riga). Dopo
varie prove si arriva a scoprire che il crash esce solo quando si
esegue una certa sequenza di operazioni pero' non si riesce a capire
come mai questa sequenza porta ad un crash mentre tutte le altre
funzionano bene.
A questo punto le uniche cose che posso pensare sono :
- qualche puntatore impazzito/mal inizializzato
- qualche funzione su stringa (array di char) che scrive in locazioni
non assegnate a quell'array
Normalmente (almeno credo), in casi come questo si usa il debugger, si
guardano le variabili, si cerca prima d'individuare la funzione dove
nasce l'errore e poi si esegue un'istruzione alla volta
(monitorizzando le variabili) fino a quando non si vede dov'e' che
nasce l'errore.
A volte questo non e' possibile perche' l'uso del debugger, lo stare a
monitorizzare le variabili o addirittura il semplice inserimento di
una printf("\a") porta ad una diversa allocazione delle variabili in
memoria e cosi' l'errore sparisce.
La domanda e' : come si puo' fare il debug in questi casi ? Come fare
a capire come mai il programma finisce in crash ?
In sostanza, come uscire dal problema quando l'aver controllato piu'
volte il sorgente non porta a scoprire nulla ?
ciao
p.s. se pensi sia OT sposta il thread sul NG che ritieni piu' adatto
(pero' avvisami)

 a capire come mai il programma finisce in crash ?
Con tanta tanta pazienza. :-)
EMG
Newsgroup: it.comp.lang.c
Titolo: Aiuto per Borland C++ per Win

Ciao,
ho la necessita' di disabilitare a tempo di esecuzione alcuni oggetti 
(es. bottoni o finestre di edit) creati a partire dal compilatore di risorse.
Premetto che ho provato diverse sequenze di funzioni senza successo e che la 
cosa mi riesce usando le MFC ma in questo caso sono costretto a 
utilizzare le classi OWL di Borland.
Ringrazio anticipatamente chi mi sapra' qualsiasi tipo di indicazione.
Per favore rispondetemi anche in email perche' saro fuori Pisa per le 
festivita Natalizie.
Filippo. 

utilizzare le classi OWL di Borland.
Semplicissimo:
nel costruttore della TDialogDerivataONo che implementa i controlli,
istanzia un oggetto di aliasing per ogni controllo che vuoi "controllare"
(passami la ripetizione)
Poi usa l'istanza creata per pilotare il controllo.
Esempio:
class TMyDialog : TDialog {
public:
    bla, bla, bla
protected:
    TEdit * myEdit;
    TButton * myButton;
};
TDialog::TDialog(........)
{
    myEdit = new TEdit(this, IDC_DEL CONTROLLO);
    myButton = new TButton(this, IDC_DEL_BOTTONE);
}
/* Esempio per disabilitare la edit e nascondere il bottone */
void TDialog::DisabilitaTutto()
{
  myEdit->EnableWindow(false);
  myButton->ShowWindow(SW_HIDE);
}
Ciao e buon lavoro con OWL
WIWA OWL
~~~~~~~~~~~~~~~~~~~ Stefano Mazzotti ~~~~~~~~~~~~~~~~~~~~
from Faenza, Ravenna, Italy
Email: 
smaz...@racine.ra.it
 | 
smaz...@geocities.com
Web:   
http://www.geocities.com/SiliconValley/Lakes/2799
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Newsgroup: it.comp.lang.c
Titolo: file .txt (scusate se il post è troppo lungo)

Ho questi tipi di file:
 
@TIME= 0 to 217
NO. @TIME VG VD IG ID IS IB
 s V V A A A A
1 0 0.5 4 -1.8676E-10 0.000933086 -0.00061747 -0.000317596
2 1 0.5 4 -2.0319E-10 0.000934434 -0.00061932 -0.00031475
3 2 0.5 4 -1.9992E-10 0.000930913 -0.000618183 -0.000312744
4 3 0.5 4 -1.9596E-10 0.000924555 -0.000615361 -0.000310483
5 ------ ------ ------ ------ ------ ------
e devo ottener dei file cosi editati:
%@TIME= 0 to 217
%NO. @TIME VG VD IG ID IS IB
% s V V A A A A
1 0 0.5 4 -1.8676E-10 0.000933086 -0.00061747 -0.000317596
2 1 0.5 4 -2.0319E-10 0.000934434 -0.00061932 -0.00031475
3 2 0.5 4 -1.9992E-10 0.000930913 -0.000618183 -0.000312744
4 3 0.5 4 -1.9596E-10 0.000924555 -0.000615361 -0.000310483
per quanto riguarda il '%' ho pensato ad un ciclo di scrittura
del tipo 
/**********
read_file=fopen("str.txt","r")
write_file=fopen("editstr.txt","r")
h=0
while(!feof(read_file))
{if(h<4)putc(write_file,37):
fgets("%s",200,read_file);
fputs("%s",write_file);}
************/
Ma come faccio a dirgli di non scrivere la stringa con i trattini?
Thank you 
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 
Questo e' un programmino, senza troppe pretese, che fa quello che
chiedi, leggendo dallo standard input e scrivendo sullo standard output.
Ha qualche problema (es. se e' possibile la presenza di una riga del
genere
5 - -------
)
Ma perche' levarti tutto il divertimento... :-)
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main(void)
{
  char* retValP  = NULL;
  char* dashPosP = NULL;
  char  lnBuff[1024] = {'\0'};
  retValP = fgets(lnBuff, sizeof(lnBuff), stdin);
  while(NULL != retValP)
  {
     if(0 != strcmp("\n", lnBuff))
     {
        if(!isdigit(lnBuff[0]))
        {
           printf("%%%s", lnBuff);
        }
        else
        {
        // con strchr si controlla la presenza di un carattere '-'
        // se anche il carattere successivo e' '-' la linea non viene
        // stampata.
        // -----------------------------------------------------------
          dashPosP = strchr(lnBuff, '-');
          if(NULL != dashPosP && '-' == *(dashPosP +1))
             printf("\n");
          else
             printf("%s", lnBuff);
        }
     }
     else
        printf("%s", lnBuff);
     retValP = fgets(lnBuff, sizeof(lnBuff), stdin);
  }
  return 0;

Newsgroup: it.comp.lang.c
Titolo: Printf

Salve ragazzi..
ho instalalto la Mandrake 8.0 (linux) e ho un problema con il gcc..
quando vado a utilizzare la printf in questo modo..
es.
int i = 1; //ma questo nn centra.. qualsiasi cosa che richiede di passare un
valore anche char erc...
printf("Ciao %d", i);
nn stampa assolutamente niente..
se invece stampo senza passare valori va :(
help mez


wrote:

metti dopo %d un \n
andrà
cod

 metti dopo %d un \n
Hmmm, dovrebbe andare lo stesso. Alla  fine del programma viene comunque
chiamato fclose su stdin e  quindi il buffer viene svuotato. Il problema
potrebbe essere altrove.
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
Sono un mirabile incrocio tra Tarzan e Giacomo Leopardi.
In me convivono tutte le doti intelluttuali di Tarzan e
tutta la prestanza fisica di Giacomo Leopardi.
A. Borsani

Newsgroup: it.comp.lang.c
Titolo: interi in stringhe

Salve.. esiste qualche funzione che converte gli interi in stringhe?m
ho cercato in tutta la stdlib ma ho trovato solo la funzione che fa l'opposto, ovvero stringhe in interi( atoi())
aiuto! (scusate il messaggio pastrugnato ma non sono ancora riuscito a usare vi in modo decente 
)ciao e grazie

 )ciao e grazie
Ciao.

esiste qualche funzione che converte gli interi in stringhe?
sprintf()
ciao

 Per risolvere il tuo problema puoi usare ecvt
[bigfok@fokhouse bigfok]$ man ecvt | col -b | grep -A 2 ^NOTES
NOTES
       These functions are obsolete. Instead, sprintf() is recom-
       mended.  Linux libc4 and libc5 specified the type of ndig-
[bigfok@fokhouse bigfok]$
Ciao ciao,
Andrea
-- 
"...Unix, MS-DOS, and Windows NT (also known as the Good, the Bad, and 
 the Ugly)."
(by Matt Welsh)

char * ecvt(double , int , int * , int * );
Anche ecvt() non e' standard.
La funzione che si usa e' sprintf()
sprintf( mia_stringa, "%d", mio_intero) ;
--
Andrea Laforgia        (
andrea_...@bigfoot.com
)

 esiste qualche funzione che converte gli interi in stringhe?
Guardati la funzione sprintf().
EMG

ho cercato in tutta la stdlib ma ho trovato solo la funzione che fa
l'opposto, ovvero stringhe in interi( atoi())


comprensivo di separatori delle migliaia?    es: 1.345.654,543
Troppo bello sarebbe ! ;)
--
Andrea Laforgia        (
andrea_...@bigfoot.com
)
----------------------------------------------------
Windows98 is a trademark of Topo Gigio Corporation.

 comprensivo di separatori delle migliaia?    es: 1.345.654,543
No, non mi risulta. Dovresti fare tu la trasformazione.
EMG

 comprensivo di separatori delle migliaia?    es: 1.345.654,543
Ma perchè, è tanto difficile farlo da sè? Parti da dx, e ogni 3 cifre
aggiungi il separatore. Può essere utile la funzione isdigit, che però non
sono sicuro sia standard.
--
Alessandro Monti

 sono sicuro sia standard.
E' standard.
EMG
Newsgroup: it.comp.lang.c
Titolo: formati file per database

Salve a tutti,
 un mio programma in C/C++ dovrebbe inserire i risultati della sua
elaborazione in file leggibili poi da Excel e/o Access.
Immagino che "mi basti" conoscere il formato dei file che leggono i
due programmi citati. Dove posso trovare informazioni a riguardo ?
Qualcuno ha gia' fatto cose del genere ?
Grazie.

 elaborazione in file leggibili poi da Excel e/o Access.
Una strada che puoi seguire e` quella di scrivere un semplice file ASCII con
estensione TXT nel quale ogni riga rappresenta un record e tutti i campi
sono separati da delimitatori tipo ; <tab> , ecc.
Entrambi Excel e Access sono in grado di importare i dati da questo formato.

due programmi citati. Dove posso trovare informazioni a riguardo ?
Ti conviene generare un file testo con campi separati da tab ('\t')
e record separati da newline ('\n'). Si tratta di un formato molto
comune di scambio dati: scrivere un file .xls direttamente e' una
impresa decisamente ardua.
Andrea
--
Andrea Griffini, Programmer
http://www.netservers.com/~agriff

 due programmi citati. Dove posso trovare informazioni a riguardo ?


Faro' come avete detto. E' piu' semplice di quanto pensassi...
Grazie.
Newsgroup: it.comp.lang.c
Titolo: valori funzioni

scusate la domanda cretina, ma come posso far ritornare 2 valori ad una
funzione?
grazie

 funzione?
Puoi racchiudere in una struct i due valori, ad esempio:
typedef struct {
    int a;
    char b;
} Pair;
Pair foo(int a, char b) {
    Pair p;
    p.a = a;
    p.b = b;
    return p;
}
oppure passi i due valori da ritornare come puntatori:
void foo(int *a, char *b) {
    *a = 10;
    *b = 'c';
}
...
int a;
char b;
foo(&a, &b);
O ancora, se i due valori sono dello stesso tipo, passi un array di due
elementi di quel tipo:
void foo(int *arr) {
    arr[0] = 10;
    arr[1] = 11;
}
E per finire, sempre se i valori son dello stesso tipo, racchiudi l'array
di prima in una struct:
typedef struct {
    int arr[2];
} Pair;
Pair foo(int a, int b) {
    Pair p;
    p.arr[0] = a;
    p.arr[1] = b;
    return p;
}
Secondo me č meglio il primo.
Ciao

funzione?
non puoi.
il ritorno di una funzione è singolo.
tutte le soluzioni (valide) prospettate da wonderboy sono un modo per 
aggirare questa limitaizone.
fs&2
--
-I know the pieces fit cos I watched 
them fall away, mildewed and 
smoldering, fundamental different-
schism
Inviato da 
www.mynewsgate.net

 funzione?
In genere queste esigenze si ovviano ritornando i valori attraverso i
parametri (passando i puntatori capaci di accoglierli) e/o utilizzando
strutture.

Tux wrote:
Grazie a tutti per i consigli
Andrea
Newsgroup: it.comp.lang.c
Titolo: informazione c

sto imparando ha programmare in c e uso devc++ ora la parte che piu' mi
interessa e' quella di scrivere programmi che mi permettano di accedere
all'hrdware esemp leggere e scrivere sulla porta seriale. In rete ho trovato
molta documentazione nulla pero' specifico per quello che mi interessa
sapreste consigliarmi?
grazie a tutti

Per accedere direttamente all'hardware, dovresti usare gli Interrupts(Bios o
Software).
Io ho trovato questa guida che tra le tante cose interessanti spiega anche
come usare gli interrupts con il C.
http://ada2.unipv.it/biblio/trickyc/downld.htm
Altrimenti con qualche  riga di inline assembly(incluso nel codice C) puoi
accedere facilmente a qualsiasi parte del tuo computer...ma questo è un'
altro discorso ;-)
--
~~~~~~~~~~~~~~~~~~~~~~
DevShadows - il team
http://www.fastcell.it/devshadows

 
http://ada2.unipv.it/biblio/trickyc/downld.htm
Questa guida riguarda il DOS e in particolare il Turbo C, e conviene varie 
imprecisioni... va' presa con le molle.
E' meglio se chiede su di un gruppo specifico per la programmazione sotto il 
sistema operativo su cui sviluppa.
-- 
Mox
"Trust the programmer."
"Don't prevent the programmer from doing what needs to be done."
"Keep the language small and simple."
"Provide only one way to do an operation."

 sistema operativo su cui sviluppa.
A questo punto allora bisogna distinguere  l'accesso diretto all'hardware e
l'accesso tramite le API del sitema operativo!!! E' logico che se a lui
interessa semplicemente accedere all'hardware vanno bene le API, ma se vuole
gestire a basso livello ogni singolo bit la cosa diventa "un pò"
OS-indipendent(es. Si possono usare gli Interrupts del bios con qualsiasi
sitema operativo).
Io direi che faccia un salto anche sul canale dedicato all'assemby ;-)

Newsgroup: it.comp.lang.c
Titolo: Per incominciare

Ciao a tutti. Mi chiamo Daniele, come da post, e ho 20 anni. Cercavo proprio
questo genere di news group. Per poter finalmente domandare da dove dovrei
cominciare, sicuramente da zero, per imparare, un minimo di programmazione
basilare. Per poi poter, in seguito, sviluppare tale argomento.
Sia come documentazione teorica, sia come primi approcci pratici.
Ad esempio leggendo il post sopra "Passo da pearl a C" ho potuto riscontrare
termini come: Gestione stringhe, Computazioni complesse, Gli Hash, i
DIzionari ecc.
Insomma, vorrei un'infarinaturà, perchè è un campo che già mi appassiona.  E
vorrei approfondirlo. Anche se da Autodidatta. Che comunque per me è sempre
stata la cosa migliore.
Grazie
Daniele
daniel...@aliceposta.it

Daniele Cocice wrote:

ciao,
Io ti parlo della mia esperienza....
La prima volta che ho acceso un computer, mi sono domandato:
Ma che è sta roba? riferendomi al sistema operativo...
Mi trovavo davanti al commodore 64.
Io ho cominciato da quella domanda e ho iniziato a studiare programmazione
attraverso del codice che avevo trovato su un manualetto vendutomi insieme
al commodore 64. Poi il mio studio si è rivolto sempre alla programmazione
dei sistemi operativi. La cosa che non mi è mai mancata è la costanza data
dalla passione.
Vedo che non ti manca l'entusiasmo e quello è già un buon punto di partenza,
per il resto un manuale e tanta costanza. Io ti consiglio un manuale
qualsiasi del C cosicché cominci a prendere confidenza con questo
linguaggio e poi potrai approfondire nel tempo... Io negli anni ho
conosciuto linux e mi sono ritrovato a studiare i sistemi operativi
direttamente da codice.
Se ti piace veramente quello che studi, non ha importanza come cominci,
perché sicuramente riuscirai nel tuo intento... Io non ho mai fatto un
corso di programmazione....
Buon divertimento!!!
roberto.
-- 
while (TRUE) {
    while (turn != 0)
    critical_region();
    turn = 1;
noncritical_region();
}

 [CUT]
Ti do anche un altro hint, fuori dal discorso del C, che pero' riguarda 
sempre la tua domanda.
Se ti puo' interessare, al mio corso di Informatica (Bologna) il corso 
di programmazione utilizza Scheme come linguaggio didattico, per tutta 
una serie di ragioni (ma non voglio essere OT piu' di tanto :P).
Link utile: 
http://www.drscheme.org
 - compilatore, ambiente di sviluppo, 
e libro sulla _programmazione_ (con riferimento a Scheme), tutto in 
inglese pero'.
PS: "newsgroup", non "news group" :-)
-- 
Mat/tia Belletti - Undergraduate student @ 
cs.unibo.it
ICQ: 33292311    - email: 
mbel...@cs.unibo.it
IRC: RedGlow     - site(s): 
http://mbellett.web.cs.unibo.it/
Jabber: RedGlow  - Linux registered user 299762 @ machine 213003

Grazie per la dritta!!

 una serie di ragioni (ma non voglio essere OT piu' di tanto :P).
Eh no, adesso lo devi spiegare! :)
Seriamente, come mai usate scheme? E' una cosa che non ho mai sentito. 
Pregi? Difetti?
Ciao!
Newsgroup: it.comp.lang.c
Titolo: ZLibTool.Ocx - Qualcuno lo conosce?

Ho usato ZLibTool.Ocx in un progetto VB6.
Se lancio il progetto dall'interno di VB6, tutto OK.
Se compilo l'eseguibile e lo lancio, invece, compare sempre l'errore
     "System Error &H80004005 
(-2147467259
). Errore non specificato"
e questo per quanto banale sia l'applicazione.
Altro indizio:
Uso la "Creazione Guidata Applicazioni" che genera un bel form con tanto
di menů e toolbars; se lo lancio, ovviamente tutto funziona.
Se aggiungo il controllo ZLibTool.Ocx, creo l'eseguibile e lo lancio,
compare l'errore
     "Errore 7 - Out Of Memory"  (L'ho riportato a memoria)
Qualcuno sa aiutarmi?
-- 
Posted from 
chimica-studenti1.polosci.unifi.it
 [150.217.144.40] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 ha scritto nel messaggio
news:38851fcf972bb87b231...@mygate.mailgate.org...


 Ciao SIMO
no no, è un problema "conosciuto". lo evbbi anche io, ma dato che stavo solo
facendo delle prove, non mi impegnai per vedere d risolverlo.
Ettore Maronese
il Mes

 Ho usato ZLibTool.Ocx in un progetto VB6.
Ci spieghi, di grazia, che cavolo c'entra it.comp.lang.c 
con il tuo problema ?
-- 
Posted from  [80.105.34.80] 


 ha scritto nel messaggio news:dae9fafc9455bccc3f2...@mygate.mailgate.org...


Questo è It.comp.lang.visual-basic
Ehm, The Follet si e' accorto del crossposting ;-)
-- 
ciao, hal

 Questo è It.comp.lang.visual-basic
*Questo* quale ? Se invece ti dicessi che sei TU che 
stai scrivendo sotto it.comp.lang.c, come la 
prenderesti ?  I temi sul VB trattateli sul gruppo
del VB, per cortesia.





 Che? Stai scherzando vero?
Crosspost. E guardate sti header...
-- 
"Windows 95 is a 32-bit shell for a 16-bit extension to an 8-bit
operating system designed for a 4-bit microprocessor by a 2-bit
company that can't stand one bit of competition."
La mia (penosa, per ora) homepage: 
http://digilander.iol.it/burton666

 con il tuo problema ?
Avevo letto che la ZLibTool.Ocx è stata scritta in C....
Newsgroup: it.comp.lang.c
Titolo: manuale per c?

Ciao a tutti,
mi sapete consigliare un buon manuale sul c?
Ho provato con google ma ho trovato solo qualche guida invece a me serve
un manuale completo.+
Ciao e grazie
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 un manuale completo.+
Questo è i link postato pochi thread sopra
http://www.cityline.it/personal/erix/opere/corsodic.zip
nel caso prova a leggerti gli ultimi post
Ciao Max
-----------------------------------------------------------
 Secondo alcuni autorevoli testi di tecnica Aeronautica,
 il calabrone non può volare, a causa della forma e del
 peso del proprio corpo in rapporto alla superficie alare. 
 Ma il calabrone non lo sa e perciò continua a volare.
					     Igor Sikorsky
-----------------------------------------------------------

 un manuale completo.+
In franchezza. Meglio che vai in una buona libreria e ti prendi un *buon*
libro. E' si una spesa, pero' impari di piu' meglio e piu' in fretta.
-- 
Paolo || Keita' || Qualsiasi
"We all know Linux is great...it does infinite loops in 5 seconds." Torvalds
KeyID  C7E2B72C on 
http://keyserver.linux.it
  `Ask me for Fingerprint`


io mi sono trovato benissimo con l'intramontabile Kernighan & Ritchie (il
secondo è il "papà del C"), ovvero "Linguaggio C",  della Jackson

 libro. E' si una spesa, pero' impari di piu' meglio e piu' in fretta.
lo so ma ho appena comprato un libro per c++ e lo pagato parecchio....
e volevo evitare anche questa spesa.
ciao e grazie


 ciao e grazie
Ma perchč vuoi imparare il C? Se hai preso un libro su C++ (che libro?)
allora impara quello.
Ciao

 Ciao
perchè piu di uno mi ha detto che mi conviene imparare prima il c.
ciao


 perchč piu di uno mi ha detto che mi conviene imparare prima il c.
Il C (compresa la sua libreria standard) č parte integrante del C++, quindi
ogni buon libro sul C++ (che libro hai?) comprende sezioni dedicate ad esso.
Se impari il C++ impari anche a scrivere programmi in C, ma se ti abitui
troppo al C poi č piů faticoso imparare il C++. Se il C++ ti sembra troppo
complesso per iniziare IMHO sarebbe comunque meglio iniziare con un altro
linguaggio OO (Java o Python), per poi approdare al C++ (che non č solo OO).
Ciao

perchč piu di uno mi ha detto che mi conviene imparare prima il c.
Ti hanno detto una fesseria.  Impara direttamente in C++.
-- 
Andrea Laforgia - a.laforgia(at)
libero.it
"There are three kinds of people in this world; 
 those who are good at maths and those who aren't".

 Ti hanno detto una fesseria.  Impara direttamente in C++.
infatti me lo immaginavo.....
grazie a tutti per il consiglio
p.s. il libro č: corso di programmazione di c++ terza edizione di lippman
lajoie


 lajoie
Ecco, appunto: allora non ha proprio senso un ulteriore libro sul C, il
Lippman č ottimo.
Ciao

Se non sbaglio il titolo del manuale e': Programmare in C editrice
Apogeo.e' ottimo te lo consiglio. by

Per la precisione: Programmare in C, guida completa.
Newsgroup: it.comp.lang.c
Titolo: include

Premetto che non sono espertissimo di C;
ho questo problema:
ho tre header file creati da me: a.h, b.h e c.h
il file a.h (che contiene un sacco di definizioni) è usato sia da b.h che da
c.h e questi utlimi due
sono inclusi nel file mioprog.c
quando compilo mioprog.c (uso il Borland C++ Builder free 5.5) mi dice che
ci sono dichiarazioni
multiple di tutte le funzioni e dei tipi di a.h (per forza, dico io, l'ho
incluso due volte);
La domanda è: ma il compilatore non si accorge che sono le stesse e non due
diverse? cioè che è sempre lo
stesso file (incluso 2 volte perchè serve in due header file diversi)?
Tra l'altro questo errore non lo dà quando includo due volte una libreria
standard (tipo io.h, stdlib.h).
Come posso risolvere il problema?
Grazie a tutti in anticipo.
-----------------------------------------------------------
Stefano Sala
stefan...@stcorp.cjb.net
http://stcorp.cjb.net/
http://clik.to/stefano/

Stefano Sala
Ciao Stefano
per risolvere questo problema metti in cima ai tuoi header file le seguenti
direttive al preprocessore:
// file a.h
#ifndef _A_H_
#define _A_H_
// Tutto cio´ che c´ era prima
#endif
Mauro

 una libreria standard (tipo io.h, stdlib.h).
  Se consulti questi file, noti che implementano il meccanismo di cui
sopra.
	Alla prossima,
		Marco

 wrote in message
6REt6.63685$6W.63...@news.infostrada.it...

Newsgroup: it.comp.lang.c
Titolo: Plug in

Ho bisogno di fare un programma al cui interno possa aggiungere una o + 
plug in , come si fa??? Visto che le funzioni sono abbastanza standard ho 
fatto una struttura come puntatore ma come faccio a fare puntare un cosa 
di esterno????
GRAZIE
<<SAX>>

Se programmi in Windows basta usare certe funzioni(non so quali siano,
chiedile su it.comp.programmare.win32) che caricano da programma a run-time
una DLL, eccole: LoadLibrary, GetProcAddress, FreeLibrary(cerca nella tua
reference di win32, comunque vanno chiamate nell'ordine; voglio anche
mandarti il programma d'esempio che trovo qua. Se vuoi complicarti la vita
puoi creare dei componenti COM, ma ciò implica programmazione orientata agli
oggetti, e poi COM è più pesante di una DLL; del resto, il vantaggio della
OOP è dal punto di vista dell'ingegneria del software, ovvero OOP è inutile
su piccoli progetti(tranne che per l'uso di componenti già pronti).
// File:  RUNTIME.C
// A simple program that uses LoadLibrary and
// GetProcAddress to access myPuts from MYPUTS.DLL.
#include <stdio.h>
#include <windows.h>
typedef VOID (*MYPROC)(LPTSTR);
VOID main(VOID)
{
    HINSTANCE hinstLib;
    MYPROC ProcAdd;
    BOOL fFreeResult, fRunTimeLinkSuccess = FALSE;
    // Get a handle to the DLL module.
    hinstLib = LoadLibrary("myputs");
    // If the handle is valid, try to get the function address.
    if (hinstLib != NULL)
    {
        ProcAdd = (MYPROC) GetProcAddress(hinstLib, "myPuts");
        // If the function address is valid, call the function.
        if (fRunTimeLinkSuccess = (ProcAdd != NULL))
            (ProcAdd) ("message via DLL function\n");
        // Free the DLL module.
        fFreeResult = FreeLibrary(hinstLib);
    }
    // If unable to call the DLL function, use an alternative.
    if (! fRunTimeLinkSuccess)
        printf("message via alternative method\n");
}
Su linux ci sono gli shared object, che corrispondono alla DLL, ma non so
come si usano(chiedi su un newsgroup linux). Se sei su DOS, penso ti possa
sparare o cercare di ricorrere agli overlay(ma non sono progettati, se non
sbaglio, per questo).

Newsgroup: it.comp.lang.c
Titolo: struct parametrica

ciao
come faccio a passare, come parametro, una struct ad una funzione?
grazie
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

basta chiamare dal mail la funzione con la struct come parametro;
faccio un esempio:
funzione( macchina fiat)
dove macchina e' il tipo struttura
e fiat e' il nome vero e proprio della struttura definito dopo il prototipo 
della funzione....
ciao
E

Newsgroup: it.comp.lang.c
Titolo: Problemi con libpq

Ciao a tutti,
ho un problema con PostGres 7.4.1 su Slackware 9.0 con kernel 2.6.0: dopo
averlo compilato e installato tutto funziona correttamente tranne per il
fatto che se provo a compilare con gcc il file di esempio contenuto
nell’help di postgres mi da tutta una serie di “unresolved symbols” i
corrispondenza di ogni linea che contiene una chiamata ad una funzione della
libreria libpq. Notare che il file header viene trovato e incluso, che la
libreria si trova nel path /usr/lib e che l’errore si verifica anche se il
server postgres e’ avviato… Qualcuno sa dirmi dove puo’ essere il problema?
Grazie a tutti in anticipo.
Tiziano.
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 Tiziano.
ciao ...
-- 
#include <stdio.h>
int main(void){char c[]={10,65,110,116,111,110,105,111,32,98,97,114,98,111,110,
101,32,60,104,105,110,100,101,109,105,116,64,116,105,115,99,97,108,105,110,101,
116,46,105,116,62,10,10,0};printf("%s",c);return 0;}

Newsgroup: it.comp.lang.c
Titolo: C e Parapin

Salve ragazzi,
  ho appena "emergato" la libreria parapin e parapin driver ma sembrano
non funzionare...
Questo è il codice:
--------------------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <parapin.h>
int main(int argc, char *argv[]){
  if (pin_init_user(LPT1) < 0)
    exit(0);
  pin_output_mode(LP_DATA_PINS | LP_SWITCHABLE_PINS);
    set_pin(LP_PIN[2]);
}
------------------------------------------------------------------------
Il led è collegato rispettivamente al pin 2(VCC) e al 25(GND)...
Avete idee? :\

 Il led è collegato rispettivamente al pin 2(VCC) e al 25(GND)...
Gli indici degli array iniziano da 0 in C. Quindi, a meno che anche la 
numerazione dei pin non inizi da 0, e' molto probabile che il led vada 
collegato al pin 3.
OT:
La corrente e la tensione sono giuste? Io non so quali siano le 
caratteristiche elettriche della porta seriale ma non credo che siano 
quelle richieste da un led (anche se ogni tipo/colore e' diverso). Se il 
problema fosse questo con una resistenza dimensionata correttamente te 
la cavi, anche se forse hai gia' bruciato il led.
Domanda stupida: la porta seriale funzione?
Domanda ancora piu' stupida: hai controllato la polarita' del led?
-- 
Devaraja (Xdevaraja87^gmail^c0mX)
Linux Registerd User #338167
http://counter.li.org

 Cosa significa emergato?
mmm
credo che abbia installato tramite il gestore di pacchetti "emerge" (quindi
presumo ci sia una gentoo dietro)
(ma la cosa e' abbastanza OT)
-- 
Firma in costruzione
Newsgroup: it.comp.lang.c
Titolo: Tabella HASH

Salve a tutti, devo implementare una tabella HASH
del tipo tab[DIM][DIM1]; devo copiare una
stringa "source" in tab[][DIM1], perchè DIM mi indica
il numero di stringhe.
Come posso fare?, navigando non ho trovato nulla di utile...
Grazie a tutti

 wrote

Sicuro di non aver trovato nulla di utile navigando?
Io con una banale ricerca con google ho trovato un mucchio di link, proprio
ora, per fare una prova.
Questo link e' una introduzione su cosa sono e potrebbe aiutarti a capire il
concetto:
http://www.sparknotes.com/cs/searching/hashtables/section1.html
e questa e' una implementazione:
http://www.gmonline.demon.co.uk/cscene/CS5/CS5-02.html
Ovviamente non mi sono letto le due pagine sopra quindi mi auguro che
contengano informazioni corrette....
Ad ogni modo oltre ad internet, qualsiasi libro di algoritmi e strutture
dati ti puo' essere di aiuto.
Quando hai provato a fare qualche cosa, se ancora non riesci allora il NG ti
puo' essere di aiuto.... Ora, e' abbastanza difficile esserti di aiuto...
Tommy


Non e' assolutamente chiaro cosa vorresti ottenere.
in cosa consiste per te una tabella HASH ?
In particolare che funzione di hashing vorresti usare ?
se hai una stringa s e la vuoi copiare
nella posizione j di un array di stringhe tab
allora basta fare strcpy(tab[j],s);
Se non sai questo, allora e' probabile che tu abbia le idee molto
confuse sulle stringhe (zero-terminate) del C,
sugli array, etc.etc. Quindi la lettura di un manuale di C
e' auspicabile.
Visto che desideri che si impieghi un po' di tempo nell'aiutarti,
tu almeno cerca di impiegare un po' di tempo nell'esporre
chiaramente i tuoi problemi.
ciao,
g.

Newsgroup: it.comp.lang.c
Titolo: e adesso???

ciao a tutti, ho studiato il linguaggio c, le mie conoscenze sono più o meno 
quelle che fornisce il D&D o altri manualeti del c.
diciamo che fino alle liste concatenzate non ho problemi.
Ma a questo punto che me ne faccio di queste conoscenze? nel senso che in 
fin dei conti sono in grado di fare solo programmi "matematici" o programmi 
che gestiscono dei record da file di testo.
all'università il linguaggio c si concloude al mio livello, pero se cosi 
fosse sarebbe inutile tutto cio che ho imparato.
non è possibile fare altre cose? tipo un programma che legga file audio o 
robe cosi???
in rete non ho trovato nulla...
fatemi sapere qualcosa
grazie mille 


linux ?
http://www.linuxdevcenter.com/pub/a/linux/2007/08/02/an-introduction-to-linux-audio.html
http://www.oreilly.de/catalog/multilinux/excerpt/ch14-01.htm
se vuoi andare sul "pesante":
http://www.linuxhq.com/lkprogram.html
altrimenti non so ;-))
ciao ...
-- 
Never try to teach a pig to sing.
It wastes your time and annoys the pig.
Newsgroup: it.comp.lang.c
Titolo: help a principiante

Ciao a tutti sono solo tre giorni che sto studiando il C, e mi sono
inpuntato in un programma:
#include <stdio.h>
/* Programma di conteggio delle occorrenze delle diverse cif
re, dei caratteri di spaziatura e di tutti gli altri caratte
ri*/
main()
 {
  int c,i,nspazi,naltri;
  int ndigit[10];
  nspazi=naltri=0;
  for (i=0; i<10; ++i)
   ndigit[i]=0;
  while ((c=getchar()) != '*')
   {
    if (c >= '0' && c < '10')
     ++ndigit[c - '0'];
    else
     if (c==' ' || c=='n\' || c=='\t')
      ++nspazi;
     else
      ++naltri;
   }
  for (i=0; i<10; ++i)
   printf(" %d", ndigit[i]);
  printf("%d\t%d\n", nspazi, naltri);
 }
non me lo compila...dove sta l'errore? probabilmente e' una stronzata ma ora
non riesco a vederla...
grazie
--------------------------------
Inviato via 
http://usenet.libero.it

 non riesco a vederla...
Esatto! :-)
'10' non e' un carattere!
Ciao,
Ema

>      if (c==' ' || c=='n\' || c=='\t')
                        ^^^^
Forse è un errore di battitura ma deve essere '\n' e non 'n\'
ti da un warnings ma te lo compila
Ciao Max
-----------------------------------------------------------
 Secondo alcuni autorevoli testi di tecnica Aeronautica,
 il calabrone non può volare, a causa della forma e del
 peso del proprio corpo in rapporto alla superficie alare. 
 Ma il calabrone non lo sa e perciò continua a volare.
					     Igor Sikorsky
-----------------------------------------------------------

 Ciao Max
Se invece ci aggiungi a questa correzzione anche la modifica di Ema
te lo compila senza nessun warnings
L'output ... è incomprensibile però funziona :)


 non riesco a vederla...
Ci sono da fare solo le due correzioni che ti hanno già detto ma se stai
studiando il C da soli tre giorni significa che sei sulla buona strada :))
Ciao,
Paolo PAL

Ti hanno gia' risposto su come correggere l'algoritmo,
quindi passo ad altro.
Il compilatore cerca sempre di indicarti l'errore. Dall'output dovresti
capire quale e' il problema: ti viene indicata la linea del warning o
dell'errore, e il codice da correggere e' spesso lì o una riga sopra.
Ciao,
Riccardo
-- 
-=Riccardo Galli=-
 _,e.
s~  ``
 ~@.   ideralis Programs
.   ol 
 `**~  
http://www.sideralis.net
Newsgroup: it.comp.lang.c
Titolo: Revisioni dello standard

Per caso l'ANSI ha in progetto qualche revisione dello standard?
Lo chiedo perché mi era sembrato di sentire qualcosa del genere,
ultimamente.
Ho letto addirittura da qualche parte che si vorrebbe inserire il supporto
all'OOP.....
--
Marco Iannaccone
marc...@tin.it
Nick: Tolkien
ICQ UIN: 18748121
"This is a new ship, boy, but she's got the right name...
You treat her like a lady, and she'll always bring you home"
"Questa è una nave moderna, ma ha un nome antico e glorioso...
Trattala come una signora e ti riporterà sempre a casa"
FAQ di it.comp.lang.c:
http://www.programmazione.it/linguaggi/c/itcomplangc.htm

all'OOP.....
E che senso avrebbe ? Esiste gia' il C++ !

 all'OOP.....
Di questo non ne so niente. Spero di no, altrimenti avremmo due C++.
EMG

Comunque, dove potrei trovare informazioni sul nuovo standard?


Infatti, ma l'avevo letto...


ICQ UIN: 18748121
http://www.iso.ch/cate/35060.html
F.

 wrote in message 8bplt9$7o7$1...@serv1.iunet.it...


supportarlo? Tnx!
C'e' qualcosa qui:
http://www.lysator.liu.se/c/
Ciao
F.
Newsgroup: it.comp.lang.c
Titolo: Ma porca miseria queste interrupt

Ma porca miseria possibile che questo ca...bip di windows 95 come uno cerca
di generare una interrupt via software mi risponde con una ca..bip di
finestra blu con un errore irreversibile!!!!???!!!!
Esempio...
Borland C++ Builder, la cosa più facile del mondo:
geninterrupt(28);
28 è 1Ch
Bip...Bip Bip... Biiiiiiiiiiiiiiiiiiiip
Dove sbaglio?
Ciao e grazie per le risposte!!

28 è 1Ch
perche` mai dovresti chiamare manualmente l'int 1Ch ??
in ogni caso queste sono cose da fare sotto DOS e non sotto windows.
sotto windows si usano le api, sotto dos gli interrupt ...
--
[ranger, email: 
ran...@queen.it
]
ICQ# 6585343

sotto windows si usano le api, sotto dos gli interrupt ...
Diciamo che si possono fare anche sotto windows, tramite DOS.
Piu' che altro bisogna guardare alla compatibilita' con il sistema
operativo.
Il problema e' che chiami un interrupt legato all'orologio di sistema
e non e' una cosa molto furba !!! :)
E poi, tra l'altro, l'interrupt 1Ch non fa assolutamente nulla !
Andrea
------------------------------------------------
combatti anche tu il "nano scemo" :
http://www.geocities.com/Hollywood/Studio/6989
------------------------------------------------
Newsgroup: it.comp.lang.c
Titolo: aiuto ....urgente

scusate ragazzi ma ho bisogno di un aiuto urgentissimo:
IN ANSI C è possibile fare un assegnamento del genere:
corrente->inf  =  valore;
considerando che corrente->inf è il campo informazione di un struttura NODO
e valore è un intero.
il compilatore lcc mi rompe,me lo compila ma poi non funziona.
Un altro es   corrente->visitato = 0  non me lo accetta anche se in struct
il campo visitato è int,ho provato a farlo stampare a video e mi restituisce
un indirizzo di memoria!!!
se non è ansi c mi sapreste dire la sintassi per l'assegnamento
la mia struct
struct pedina{
  int inf;                      // X e Y sono le coordinate della pedina,inf
le raccoglie
  int visitato;                 //  Serve per tener traccia dei nodi già
trovati
struct pedina *figlio_sx;      //  Puntatori al figlio sx
struct pedina *figlio_dx;      //  Puntatori al figlio dx
};
typedef struct pedina PEDINA;
tanto per la cronaca sotto visual studio funziona benissimo.Grazie 1000 a
chi mi puo aiutare,entro stanotte...grazi

chi mi puo aiutare,entro stanotte...grazi
Posta il codice in cui ti da' errore.
-- 
The Follet

The Follet <thef...@thefollet.bye> wrote in message
3bcd494...@news.tin.it...

int adiacenze(int valore)
{
 PEDINA *corrente=NULL;
 PEDINA *padre;
 if (pedine_tot < numero_pedine)
 {
 padre = testa;
 corrente=(PEDINA*)malloc(sizeof(PEDINA));
 corrente = padre->figlio_dx;
  while (corrente->inf != valore)
  {
   if (corrente->inf > valore)
   {if (corrente->figlio_sx != coda)
    corrente = corrente->figlio_sx;
   else
    break;
   }
   else
   {if (corrente->figlio_dx != coda)
    corrente = corrente->figlio_dx;
   else
    break;
   }
  }
  if (valore == corrente->inf)
  { if (corrente->visitato == 0)   file:// viene il problema è qui
  {corrente->visitato=1;
   ritorno = 1;
   pedine_tot = pedine_tot + 1;
   pedine_contate=pedine_contate + 1;
   ritorno = adiacenze(valore + 1);    file://a dx
   ritorno = adiacenze(valore - 1);    file://a sx
   ritorno = adiacenze(valore + dim_piano);  file://in su
   ritorno = adiacenze(valore - dim_piano);  file://in giu
  }
  }
 }
 return (ritorno);
}
non so se ti puo servire ma il prob è qui,questa è chiamata da un' altra e x
ogni esecuzione che mi tira in ballo questa funzi ne ho una che mi riporta a
0 ->visitato, che è questa
{
if (pippo != coda)
{
 pulisci_visitati(pippo->figlio_sx);
 pippo->visitato = 0;
 pulisci_visitati(pippo->figlio_dx);
} }

 corrente = padre->figlio_dx;
Attento, qui c'e' un buchetto.
Allochi memoria per corrente, poi pero' gli assegni il
valore di padre->figlio_dx.
In questo modo, perdi il riferimento alla memoria appena
allocata.
-- 
The Follet

"The Follet" <thef...@thefollet.bye> ha scritto nel messaggio
news:3bdc5a7b...@news.tin.it...

Giustissimo,grazie 1000

Newsgroup: it.comp.lang.c
Titolo: TinyTcc

Salve a tutti , con il compilatore tinytcc
quale comando uso per sostituire il comando
getkey(); del gcc .
Grazie a tutti
Ciao

"Max" <m...@max.max> ha scritto nel messaggio
news:44cf8bdc$0$15877$4faf...@reader2.news.tin.it...

... nessun consiglio  ?  :-)
Ciao
Newsgroup: it.comp.lang.c
Titolo: BCD2DEC E DEX2BCDin c

Salve sono appena arrivato in questo newsgrp. e vorrei porre alcune domande:
Esiste un sito di riferimento legato al nwsgrp?
Poi il mio piccolo problema:
Programmo da poco in C su una piattaforma da me progettata (micro
NEC78F0058). Utilizzo un compilatore C della IAR (ottimo).
Sfrutto molto le librerie incluse nel sistema di sviluppo ma ora ho
necessita di convertire un numero int da BCD a dec e viceversa.
Faccio un esempio:
il numero int 36 viene rappresentato in memoria come 0x24, io vorrei una
funzione in C che me lo rappresenti in memoria come 0x36 partendo dal suo
valore decimale 36!
Le ho scritte in assembler e ho creato una libreria e tutto funziona ok.
Pero vorrei imparare (da chi ne sa' piu' di me in C) a scriverle utilizzando
completamente questo ,per me nuovo, linguaggio.
Poi una cosa che non capisco:
il seguente programma con una struttura cosi' fatta:
#include <string.h>
#include <stdio.h>
char io_string[80];
struct I2C_clock {
 char hour;
 char min;
 char sec;
 char hsec;
 char day;
 char month;
 char weekday;
 char yrflg;
  int year;  } clock;
void main( void )
{
 struct I2C_clock *c;
 char ch;
 int i;
 c = &clock;
 while(1){
  printf("Enter new time (HH:mm.SS DD/MM/YYYY) ");
  gets(io_string);
/* Elimino  i ":" "." "/" */
  i = 0;
  while(ch = io_string[i]){
   if (ch==':' || ch=='.' || ch=='/')
    io_string[i] = ' ';
   i++;
  }
  sscanf(io_string,"%x %x %x %x %x
%d",&c->hour,&c->min,&c->sec,&c->day,&c->month,&c->year);
  printf("Current time: %x %x %x %x %x
%d\n",c->hour,c->min,c->sec,c->day,c->month,c->year);
  printf("Current time: %d %d %d %d %d
%d\n\n",c->hour,c->min,c->sec,c->day,c->month,c->year);
 }
}
funziona correttamente, mentre se la struttura è fatto cosi:
struct I2C_clock {
 char hsec;
 char sec;
 char min;
 char hour;
 char day;
 char month;
 char weekday;  file://da 00 a 06
 char yrflg;   file://da 00 a 03
 int year;  } clock;
i primi due valori c->hour e c->min sono sempre a zero !!!!
Grazie anche solo per avermi prestato un po' di attenzione
Maurizio Tolfa
maur...@tolfa.com

 Esiste un sito di riferimento legato al nwsgrp?
Ci sono le FAQs del gruppo, vedi mia signature
ciao ciao
Marco
--
Marco Coppo
University Of Sheffield
FAQ del gruppo: 
http://www.programmazione.it/linguaggi/c/itcomplangc.htm
Newsgroup: it.comp.lang.c
Titolo: Quale limite ai char?

Ciao a tutti,
sto creando una piccola applicazione in c, e mi trovo ad avere bisogno di
utilizzare stringhe di lunghezza superiore a 255 carattei (esempio
char[750]) esiste un tipo che mi permetta di creare una stringa di tali
dimensione?
Grazie.
Ale

 dimensione?
In C non esiste il tipo stringa e la loro rappresentazione, di solito, 
e` demandata all'uso di array di caratteri, i quali possono avere le 
dimensioni desiderate (compatibilmente con la disponibilita` di 
memoria). Poiche`, dunque, nella loro rappresentazione non e` contenuta 
la loro dimensione, come invece accade nel Pascal, si usa postporre a 
tutti i caratteri utili il carattere speciale '\0', il quale indica alle 
funzioni di libreria che le manipolano, str+(), la terminazione della 
stringa stessa. Da cio` discende che quando calcolerai la dimensione 
delll'array per rappresentare una stringa di N caratteri, dovrai 
considerare in essa anche l'N+1-esimo carattere di terminazione.
Il mio consiglio, comunque, e`, prima di affrontare qualsiasi tipo di 
porgrammazione in C, di reperire e studiare almeno uno degli ottimi 
manuali (cartacei) che di questo linguaggio forniscono la descrizione. 
La mia preferenza va al "Linguaggio C--Seconda edizione" di Kernighan e 
Ritchie, edito in Italia da Jackson. Ma altri ti potranno consigliare 
valide alternative.
-- 
Baci,
Mony

 wrote in message
news:3c906d77$1...@news.cis.it...

certo..se la memoria te lo permette usa malloc()
non l'ho mai usata ma se assegni la memoria di 750 char ad un puntatore
di tipo char ti gestisci tutti i caratteri che ti servono...
bye bye duido
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 certo..se la memoria te lo permette usa malloc()
Mai usare puntatori, se non strettamente necessario.
Non c'e' alcun problema nel dichiarare un char[750].

Newsgroup: it.comp.lang.c
Titolo: client segfault

Salve a tutti, ho creato 2 file di test che si avvalgono dei socket: un
client ed un server.
Il server rimane perfettamente in ascolto, ma il client quando lo avvio mi
va subito in segfault.. Potreste darmi una icchiarta please?
/*       Client.c     */
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#define PORT 4000
void addr_initialize(struct sockaddr_in *indirizzo, int port, long IPaddr)
{
   indirizzo->sin_family = AF_INET;
   indirizzo->sin_port = htons((u_short) port);
   indirizzo->sin_addr.s_addr = IPaddr;
}
void main(int argc, char* argv[])
{
   int sd;
   struct sockaddr_in server_addr;
   struct sockaddr_in mio_addr;
   int mio_addr_len=sizeof(mio_addr);
   int error;
   addr_initialize(&server_addr, PORT, inet_addr(argv[1]));
   sd=socket(AF_INET,SOCK_STREAM,0);
   error=connect(sd,(struct sockaddr*) &server_addr, sizeof(server_addr));
   if (error==0)
      {
      printf("Connessione effettuata\n");
      getsockname(sd, &mio_addr, &mio_addr_len);
      printf("La mia porta e': %d\n\n",ntohs(mio_addr.sin_port));
      close(sd);
      }
   else printf("%s","\nErrore connessione\n\n");
   close(sd);
}
/*    End    */
Grazie anticipatamente per i chiarimenti.
Andrea


I'm not prejudiced, I hate everyone equally.

 }
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
Se alla sera, dopo una strepitosa vittoria, guardandoti allo
specchio dovessi notare un secondo paio di palle, che il tuo 
cuore non si riempia d'orgoglio, perche` vuol dire che ti 
stanno inculando -- Saggio Cinese

 dato che server_addr c'ha il cast ?? 
No, connect e` una funzione  generica che accetta come secondo parametro
una qualunque struttura sockaddr. Il  terzo parametro serve per indicare
alla connect quanto l'indirizzo contenuto nella struttura sara` lungo.
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
Non capisco tutta questa eccitazione per il Multitasking: 
io sono anni che leggo in bagno.