mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c
Titolo: [evento] Inter Language Beer - Roma

Ciao a tutti...
Sto organizzando un evento rivolto a developer e architetti, non che
smanettoni e simpatizzanti della programmazione, che utilizzino un
linguaggio od un altro e che siano pronti a confrontarsi sul loro stesso
campo: la programmazione...
InterLanguage Beer è la possibilità di dimenticare le tradizionali
rivalità tra linguaggi e di riunire programmatori di diversa natura
sotto un Grande Fattore Unificante: la birra!
L'evento è gratuito e di natura informale, si terrà a Roma ad inizio
Maggio, i temi guida dell'evento saranno decisi man mano sul wiki...
Sono previste delle presentazioni chiave che faranno da guida all'evento...
Consultate l'Abstract dell'evento (in PDF) per avere un idea di quello
che InterLanguage Beer sarà:
http://inter-language-beer.pbwiki.com/f/abstract_interlang.pdf
Per maggiori informazioni sull'evento stesso vi rimando al wiki della
ILB e alla relativa mailing-list:
http://inter-language-beer.pbwiki.com
 (wiki)
http://groups.google.com/group/inter-language-beer
 (ML)
Per commenti, idee o suggerimenti, sentitevi liberi di postare in ML...
Se vi interessa l'evento, un passaparola tra amici e colleghi e' sempre
ben accetto...!
Ciao,
jRed

 jRed
sarebbe interessante anche una gara di programmazione in modalita' ubriaca..
a vari livelli naturalmete..
1 beer
2 beers 
3 bears
too much bears
too much drunk..
diciamo che ho gia' iniziato ad  allenarmi.. ho forse equivocato od
elaborato troppo il nome dell'iniziativa? mah..
-- 
www.iuz-lab.info

 sotto un Grande Fattore Unificante: la birra!
MA E' BELLISSIMOOO... naaah, quando organizzate una cosa del genere a
Milano, io ci sono :D :D :D
-- 
NoWhereMan (e.v.)
-- 
http://www.nowhereland.it
-- 
http://flatpress.nowhereland.it

 Milano, io ci sono :D :D :D
Beh, sarebbe bello...intanto potresti metterti nella ML ufficiale per 
poter esportare l'idea a Milano...
Ciao,
jRed

 poter esportare l'idea a Milano...
[..]
se organizzate a milano..
vengo sicuramente..
-- 
www.iuz-lab.info

 vengo sicuramente..
vai, siamo almeno in due :D

Newsgroup: it.comp.lang.c
Titolo: spostarsi in un file

salve a tutti;
avrei undubbio riguardo lo spostamento su di un file.
ho visto che con le funzioni ftell(),rewind(),fsek() e' possibile spostarsi
in un file in base ai byte, pero' non riesco trovare la soluzione per
spostarmi ad esempio da una riga all'altra.
faccio un esempio mettiamo che io abbia il file cosi strutturato:
pippo
pluto
vino
kino
quindi ho quattro stringhe e utilizo la funzione fgets per leggere la prima
come faccio poi a leggere la seconda la terza e cosi via?
cono i segnaposti ma come?
e se volessi leggere solo la quarta?
grazie

 come faccio poi a leggere la seconda la terza e cosi via?
risposta semplice: richiami fgets !?!??!
<CODE>
FILE *fin;
fin=fopen("nomefile.txt","r");
char buff[128];
while(fgets(buff,128,fin)){
     printf("> %s",buff);
}
fclose(fin);
</CODE>
Ogni ciclo legge una riga e la stampa.
Il mini programma scritto al volo e non testato ricopia a schermo il testo
contenuto in nomefile.txt dove ogni riga viene preceduta da '> ' come quando
si quota il testo di msg precedente di un newsgroup.
Non e' che abbia molta utilita', ma rende l'idea....
Il ciclo while termina quando fgets ritorna NULL.
N.B. affinche' il programma funzioni correttamente ogni riga (fino al
newline) deve essere piu' corta di 128 caratteri.
Tommy

 prima come faccio poi a leggere la seconda la terza e cosi via?
Successive chiamate?

Gli altri ti hanno gia' risposto adeguatamente.
Aggiungo un esempio: quando apri un file, e' come se posizionassi un
ipotetico cursore all'inizio del file e lo spostassi ad ogni lettura di
carattere o riga. Quando una lettura finisce, il cursore si trova dopo
l'ultimo carattere letto, e non torna indietro. Quindi quando ricominci a
leggere il file leggi a partire dal cursore.
Ciao,
Riccardo
-- 
-=Riccardo Galli=-
 _,e.
s~  ``
 ~@.   ideralis Programs
.   ol 
 `**~  
http://www.sideralis.net

leggere il file leggi a partire dal cursore.
Mi sembra pero' di ricordare che la funzione fseek posiziona
correttamente il puntatore del file sull'offset desiderato solo se
quest'ultimo e' aperto in modalita binaria.

 quest'ultimo e' aperto in modalita binaria.
? non mi risulta. Intendi dire che invece "sbaglia" se il file è aperto in
modalita' testo? Ho sempre usato fseek tranquillamente in file contenente
caratteri. Se mi sbaglio delucidami pure.

Newsgroup: it.comp.lang.c
Titolo: Aiuto: Ricerca stringhe

Salve a tutti,
sto facendo un programma e vorrei che scrivesse le impostazioni in un file
tipo i file .ini. Mi chiedevo come poter ricercare una determinata stringa
di testo all'interno di questo file: ho provato a utilizzare strstr(), ma ho
2 prolemi: non capisco cosa restituisce, non so come acquisire la stringa
dopo ciň che ho cercato. Mi spiego meglio:
diciamo che il file contenga una riga tipo:
MiaVariabile = Valore;
il mio approccio per leggere Valore sembrerebbe essere di cercare
"MiaVariabile = " e acquisire tutti i caratteri che seguono su quella riga,
ad esempio.
Come si puň fare? Esistono approcci migliori? Potete rispondermi scrivendomi
magari un codice utile alla risoluzione di questo problema e la spiegazione
delle relative funzioni utilizzate?
Grazie!
Marco

 delle relative funzioni utilizzate?
Puoi leggere il file riga per riga ed estrarre le informazioni:
FILE *file = fopen("blabla", "r");
char buff[MAX_LEN];
int var1, var2, var3;
char *p;
var1 = var2 = var3 = 0;
while(fgets(buff, MAX_LEN, file)) {
	/* La riga letta e` in buff */
	if (strstr(buff, "MiaVariabile1")) {
		/* Trovata MiaVariabile1 */
		/* Tolgo il newline */
		if ((p = strchr(buff, '\n')))
			*p = 0;
		if ((p = strchr(buff, '\r')))
			*p = 0;
		/* Mi posiziono sul = */
		p = strstr(buff, "=");
		/* Scarto gli spazi bianchi */
		while (isspace(*++p))
			;
 
		/* Adess p punta al valore della variabile */
		sscanf(p, "%d", &var1);
	} else if (strstr(buff, "MiaVariabile2")) {
		if ((p = strchr(buff, '\n')))
			*p = 0;
		if ((p = strchr(buff, '\r')))
			*p = 0;
		p = strstr(buff, "=");
		while (isspace(*++p))
			;
		sscanf(p, "%d", &var2);
	} else if (strstr(buff, "MiaVariabile3)) {
		if ((p = strchr(buff, '\n')))
			*p = 0;
		if ((p = strchr(buff, '\r')))
			*p = 0;
		p = strstr(buff, "=");
		while (isspace(*++p))
			;
 
		sscanf(p, "%d", &var3);
	}
}
/* Codice non testato */
Basta aggiungere sezioni  simili per ogni variabile  da leggere. E direi
che bisogna aggiungere  qualche controllo su quello che  viene letto (ad
esempio controllare che p non sia nullo) e sulla conversione con sscanf.
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
"Su cio` di cui non si puo` parlare e` bene tacere".
 Ludwig Wittgenstein
Newsgroup: it.comp.lang.c
Titolo: Creare una lista da un albero

Devo scrivere una funzione che ricevendo in ingresso A, il puntatore a un
albero binario, restituisca in uscita una lista L di interi corrispondenti
ai nodi dell'albero mediante una visita in preordine.(Da albero a lista in
poche parole)
Es.
ALBERO                12                         LISTA    12->61->3->64->65
                             /   \
                          61    3
                                /   \
                              64   65
/*definizione albero*/
typedef struct nodo {
         int info;
         struct nodo *sin;
         struct nodo *des;
       } tipo_nodo;
typedef tipo_nodo *punt_albero;
/*definizione lista*/
typedef struct atomo {
          int info;
          struct atomo *next;
       } tipo_atomo;
typedef tipo_atomo *tipo_lista;
/* funzione principale*/
int crea(punt_albero A)
{
   tipo_lista=L;
   if(A!=NULL)
   {
      L=malloc8sizeof(tipo_atomo));
      L->d = A->info;
      L->next=crea(A->sin);
      L->next=crea(A->des);
   }
   return L;
}
Che dite? Funzionera? Se ci sono errori sapete dirmi dove?
Grazie.

ai nodi dell'albero mediante una visita in preordine.(Da albero a lista in
Scrivo il codice al volo (non e' testato) :
typedef struct _nodo_albero {
                    int dato ;
                    struct _nodo_albero *sx ;
                    struct _nodo_albero *dx ;
               } nodo_albero, *pnodo_albero ;
typedef struct _nodo_lista {
                    int dato ;
                    struct _nodo_lista *next ;
               } nodo_lista, *pnodo_lista ;
void inserisci_in_lista( pnodo_lista *p, int dato ) 
{
     if ( *p ) inserisci_in_lista( &(*p)->next, dato ) ;
     else
     {
        *p = malloc( sizeof **p ) ;
        (*p)->next = NULL ;
        (*p)->dato = dato ;
     }
}
void inserisci_da_preordine( pnodo_albero radice, 
                             pnodo_lista *plista )
{
     if ( radice ) 
     {
        inserisci_da_preordine( radice->sx ) ;
        inserisci_da_preordine( radice->dx ) ;
        inserisci_in_lista( radice->dato ) ;        
     }          
}
--
Walkie...@Libero.It (ICQ# 8143647)

 typedef struct _nodo_albero {
Avevo letto che gli identificatore che iniziano con _ (underscore) sono 
riservati per l'uso nella libreria standard, e` vero?
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
"La Via prosegue senza fine."
	Bilbo Baggins - Il Signore degli Anelli - J.R.R. Tolkien

riservati per l'uso nella libreria standard, e` vero?
Si', puoi usare comunque lo stesso "nodo_albero" come tag della
struttura.
--
Walkie...@Libero.It (ICQ# 8143647)
Newsgroup: it.comp.lang.c
Titolo: Problema sscanf strano

Ciao,
devo leggere da file una cosa del tipo:
1,DinoRider.3ds,0,0,0,0,0,0,1,1,1
2,cyborg.3ds,0,0,0,0,0,0,1,1,1
3,porsche.3ds,0,0,0,0,0,0,1,1,1
il primo è un int, il secondo un char, tutti gli altri sono float:
char modelfilename[256];
r = sscanf ( ts.readLine().latin1() , "%d,%s,%f,%f,%f,%f,%f,%f,%f,%f,%f" ,
&dummy , modelfilename , &x , &y , &z , &xrot , &yrot , &zrot , &sx ,&sy ,
&sz );
Purtroppo r vale 2 invece di 11, tutte le variabili dopo modelname non
vengono lette ma vengono inserite in modelfilename insieme al nome del
modello. Perchè ?
-- 
Bye,
Colossus
Mizio, a proxy scanner tool with GUI for Linux
http://mizio.sourceforge.net

 modello. Perchè ?
perche' (ovviamente) %s si legge tutta la stringa rimanente,
visto che non ha modo di sapere dove deve terminare.
Se vuoi separare i pezzi puoi usare funzioni come
strtok (da usare con giudizio) o in un caso
cosi' semplice puoi estrarre i pezzi a mano,
usando per esempio strchr per determinare la virgola
successiva.
Cioe',
leggi la riga in un buffer di lunghezza opportuna, diciamo Buf.
ti definisci un vettore di puntatori alle
sottoparole:
char *Pu[11];
char *p; // working
Pu[0]=Buf; // la prima parola coincide con l'inizio buffer
for (i=1; i<11; i++)
{
   p=strchr(Pu[i-1],','); //trova successiva virgola
   if (!p) { Errore: non ci sono abbastanza campi...}
   *p=0; // termino la sottoparola
   Pu[i]=p+1;
}
a questo punto hai tutte le parole puntate da Pu[].
Quindi puoi fare ad esempio
dummy = atoi(Pu[0]);
strcpy(modelfilename,Pu[1]);
x = atof(Pu[2]);
o qualcosa di simile.
etc.etc.
ciao,
g.

Ehm, ti ringrazio del codice, sei stato molto gentile
ma forse faccio prima a mettere %[^,]
invece di %s nel formato di sscanf :-) !
Grazie mille comunque,
Colossus

-- 


 invece di %s nel formato di sscanf :-) !
Grazie a te. Non ricordavo che sscanf avesse
queste proprieta' di tokenizzazione.
Puo' sempre tornare utile.
ciao,g
Newsgroup: it.comp.lang.c
Titolo: Problema con le liste

Salve a tutti ... sto imparando l'uso delle liste e mi ritrovo con un
probleminio
quando vado a compilare il codice mi da:
[Warning] assignment from incompatible pointer type
dove sbaglio???
grazie in anticipo
//file:mani.c
#include <stdio.h>
#include <stdlib.h>
#include "list.h"
//nuovo nodo lista
node *newList(void){
  node *n = malloc(sizeof(node));
  return n;
};
//appendi il nodo figlio al nodo padre
void appendNode(node *parent,node *child){
     parent->next = child; // qui mi da il warning
};
//il main
int main(void){
   node *root = newList();
   node *son1 = newList();
   appendNode(root,son1);
};
//file:list.h
typedef struct{
      struct node *next;
}node;

 
La struct node non e` definita.  Prova con
typedef struct node {
       struct node *next;
} node;
Ciao
Giovanni
-- 
   A computer is like an air conditioner,
   it stops working when you open Windows.
   Registered Linux user #337974  < 
http://giovanni.homelinux.net/
 >

Perfetto Giovanni ... niente piu warning ^_^
quindi quando uso typedef devo comunque "nominarla" la struttura ???
grazie ancora
ciuu,
Ivan
Giovanni ha scritto:


 
No. Il fatto è che si tratta di due spazi di nomi diversi.
Se scrivi:
typdef struct {
   struct node *next;
} node;
hai definito una struttura anonima. Hai definito un tipo "node" che fa 
riferimento a quella struttura anonima. Hai dichiarato "struct node" 
senza definirla. Nota che "struct node" non è lo stesso tipo di "node". 
Per esempio:
typdef struct nodo {
   struct node *next;
} node;
Ora "struct node" e "struct nodo" sono due tipi diversi. E "node" è la 
stessa cosa di "struct nodo". Ma è un tipo distinto da "struct node".

capito,  grazie mille ^_^
ciuu,
Ivan
AnalogFile ha scritto:

Newsgroup: it.comp.lang.c
Titolo: ottenere dimensione array

Salve a tutti (e auguri),
 avrei la necessita' di ottenere la dimensione di un array allocato
dinamicamente. Purtroppo il classico metodo
sizeof(array)/sizeof(array[0]) pare fallire miseramente nel caso di
allocazione dinamica.
Questa e' la prova che faccio:
int main()
{
 long *W;
 //
 if ( (W=(long*)malloc(sizeof(long)*20)) == 0) return 1;
 printf("\n Sizeof(W)    = %ld",sizeof(W));       // ritorna 4 (avrei
voluto 80)
 printf("\n Sizeof(long) = %ld",sizeof(long));   // ritorna 4
 //
 free (W);
 return 0;
}
Come potrei fare ? ( E/o dove sbaglio ?)
Grazie.
Nota: Purtroppo avrei seri problemi, quando alloco, a memorizzare la
dimensione che ho dato (anche perche' nel mio problema reale non ho un
semplice array monodimensionale).

 }
-- 
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."

memorizzarlo da qualche parte.
Sigh!
Come sospettavo.
Faro' una struttura come mi hai suggerito oppure creero'
parallelamente alla mia matrice un vettore con le dimensioni...
Grazie.
Auguri.

Workobbit wrote:


Se ti accontenti di una soluzione sporca e che funziona solo sotto
Windows...
_msize()
C:\>iao Angelo
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

chiaramente la sizeof non poteva darti il risultato che volevi dato che
viene esplicitata in fase di compilazione.
Se ti serve solo per debuggare allora puoi utilizzare anche una soluzione
sporca tipo l'_msize o cercare vicino al buffer che ti torna dalla malloc x
vedere dove e' contenuta la size(solitamente a ((unsigned
*)buffer)[-1]&(~((unsigned)1)) poiche' l'ultimo bit contiene l'informazione
di USED/FREE e la size e' sempre allineata almeno a 2)
Se invece serve al funzionamento del tuo programma allora devi (come ti ha
consigliato MOX) salvare la size insieme al buffer.
per avere un'interfaccia comoda potresti utilizzare questo codice:
typedef unsigned MYSIZE;
void *myalloc(int size)
{
 MYSIZE *psize;
 psize=malloc(size+sizeof(*psize));
 if(psize==NULL) return(NULL);
 *psize=size;
 return(psize+1);
}
#define myfree(p)     free(((MYSIZE  *)(p))-1)
#define mymsize(p)  (((MYSIZE *)(p))[-1])
//attenzione il codice non l'ho testato
in questo modo puoi utilizzare myalloc al posto di malloc e myfree al posto
di free e tramite mymsize puoi conoscere la size.
Ciao,
Drago

purtroppo non mi serve per debug ma proprio nella release...
Sto facendo le dovute modifiche per "portarmi appresso" anche le
dimensioni delle matrici.
Grazie a tutti per l'aiuto.
Newsgroup: it.comp.lang.c
Titolo: [OT] GNU Pascal (problemi di debug...)

Chiedo scusa per l'OT, ma volevo informazioni circa il debug con il
GPC.
Io utilizzo RHIDE come ambiente di sviluppo e il DJGPP come
compilatore C, pero' ho necessita' di utilizzare GNU Pascal.
Ora il problema e' che pare che il compilatore non inserisca nel
codice oggetto le informazioni di debug, sebbene la direttiva sia
attivata (-g)
La cosa strana e' che il programma eseguibile occupa 170224 byte ed
eseguendo uno "strip" su di esso riesco a ridurlo sino a 86528.
Quindi vuol dire che qualcosa nel file eseguibile c'e'.
Tra l'altro devo aver fatto qualche altra cazzata perche' adesso mi
dice la stessa cosa con i sorgenti C. 
Chi puo' darmi una mano ?

 attivata (-g)
Sul file README.1ST del DJGPP c'è scritto che bisogna mettere -g sia in
compilazione che in linking. Non so se può essere una omissione di
questo tipo la causa del tuo problema.
EMG

questo tipo la causa del tuo problema.
Il problema e' che m'ha fatto sta cosa da un momento all'altro.
Devo aver combinato qualche ca%%ata ! ;)
In ogni caso che tipo di operazioni compie il linker sulle tabelle dei
simboli ?
p.s.: il problema e' che lo strip "fa qualcosa" e lo fa sul file
eseguibile...

eseguibile...
C'e' che strip elimina proprio i simboli di debug... Credo che sia
questo il problema.
--
(o-  T | Unix is simple and coherent , but it takes a genius  to understand
//\  U | and appreciate  its simplicity .
V_/_ X |                                    Dennis Ritchie .
email: r.salmaso (at) 
flashnet.it
 | salmaso.raffaele (at) 
iname.com

questo il problema.
Ehm...questo lo so.
Ho fatto apposta la prova con strip.
Il problema e' che se lo strip elimina i simboli di debug vuol dire
che *ci sono*.
Quindi perche' non riesco a fare il debug ?
E dire che prima funzionava.
Forse e' meglio se reinstallo tutto.
Newsgroup: it.comp.lang.c
Titolo: attesa

Ciao a tutti,
uso il compilatore VisualBuilder3 della borland,
volevo chiedere se esistono funzioni che possono mettere in attesa un
programma (non eseguendo istruzioni) per un determinato tempo
grazie a chiunque
buona giornata duido

 wrote in message
news:ce762fcf.02112...@posting.google.com...


Newsgroup: it.comp.lang.c
Titolo: unsigned long in c

Salve
compilando un prg in c con gcc di GNU in ambiente linux
mi trovo di dover usare dei valori numerici superiori a 32bits
in questo c   non esiste il modo per unsare i long a 64bits ?
se si come?

Menego wrote:

Lo GNU C comprende anche gli interi long long, implementati a 64 bit. 
Controlla l'header <limits.h>.
-- 
Baci,
Mony

 ha scritto nel messaggio
news:a4t7mu$4tg$1...@newsreader.mailgate.org...


 grazie
Non e' obbligatorio.
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Newsgroup: it.comp.lang.c
Titolo: Primi approcci con C

Salve a tutti
sono alle prime armi con C e già incontro problemi decisamente depressivi
nella fattispece il seguente codice mi causa generose crisi di pianto ....
Quello che dovrebbe fare (almeno a mio avviso visto che lui è di tutt'altro
parere)
è decisamente banale... accettare 10 stringhe da tastiera e rivisualizzarle
immediatamente
dopo.....
Il bello è che a fronte dell'inserimento di dette stringhe (p.e
1,2,3,4,5,6,7,8,9,10)
la visualizzazione derivante è qualcosa del tipo
2,3,4,5,3,3,7,8,9,0
oppure
2,3,NULL, 3,NULL, 4,5,6, 9
Qualcuno saprebbe dirmi dove sbaglio ?
grazie anticipatamente :)
#include <stdio.h>
#include <io.h>
main()
{
        int i = 0;
        char* p[10];
        for(i = 0; i < 10; i++)
            scanf("%s",p[i]);
        for(i = 0; i < 10; i++)
            printf("%s\n",p[i]);
}

 scanf("%s",p[i]);
Gli argomenti di scanf devono essere puntatori, quindi:
    scanf("%s",&p[i]);
Maurizio.

 ha scritto nel messaggio
news:67yU8.99856$Kt3.2...@twister2.libero.it...


    scanf("%s",&p[i]);
p[i] è già un char*.
Newsgroup: it.comp.lang.c
Titolo: Strutture e sendto()

Salve,
sto realizzando un progetto per l'esame di Reti dell'università. Devo 
realizzare un server e un client che comunichino tra di loro 
scambiandosi dati sotto forma di strutture. E' proprio una specifica 
del progetto, non posso aggirare il problema.
Ho cercato con google e pare che la cosa sia sconsigliabile. Ad ogni 
modo ho provato a fare come riportato in questo thread
http://snipurl.com/13f1c
ma non riesco ad ottenere nulla di valido.
Il numero di byte inviati e ricevuti è effettivamente pari alla 
dimensione della struttura ma quando cerco di utilizzare ciò che ricevo 
dal client al server non ottengo nulla di sensato.
ho usato per prova una struttura come
struct prova {
 char *stringa;
 int x;
 };
per l'invio e la ricezione ho fatto come si dice nel post di cui sopra.
Per stampare ad esempio la stringa della struttura ho fatto
printf ((struct prova*)&ricevuto.stringa);
ma non mi dà assolutamente ciò che io invio.
Dove sbaglio?
-- 
N1 on zx-6r 636 '04
Dalla Spagna con terrore!

 Dove sbaglio?
Sbagli nel passare il puntatore alla stringa. Dall'altra parte come fa a
sapere il contenuto? Quello mica lo passi. Il parametro x dovrebbe essere
passatto correttamente, hai verificato?
P.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it


errore banale! grazie per l'aiuto!

Newsgroup: it.comp.lang.c
Titolo: Sintassi equivalente?

Salve a tutti, 
sto studiando l'uso dei puntatori in C ed esaminando vari listati di
esempio trovato qua e la mi sono imbattuto in questa riga:
(*l)->elem = 1;
dove elem è un campo di una struttura così definita:
struct cella {
int elem;
puntatore succ;
}
Purtroppo sul mio testo non sono riuscito a trovare nessun riferimento
alla simbologia "->", e neanche on-line ho avuto fortuna.
Da quanto ho capito permette di accedere direttamenta al campo della
struttura puntata senza ulteriore specifica.
Qualcuno può spiegarmi il ruolo di "->" e suggerirmi una notazione
equivalente?
Grazie infinite a chi mi risponderà.
Gianni.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 
E' molto semplice:
 quando hai una struttura (es. cella) e dichiari una variabile di tipo cella
(es. cella c) puoi accedere ai valori della struttura facendo c.elem o
c.succ.
Se invece dichiari un puntatore alla struttura (es. cella *p=&c) non ha più
senso scrivere p.elem o p.succ ed entra in gioco '->'. Gli elementi della
struttura c puntata da p sono accessibili con p->elem o p->succ (che in
questo
caso sono equivalenti a c.elem e c.succ).
Per accedere a p->elem senza usare '->' puoi scrivere (*p).elem ovvero
ricavare
il valore puntato da p (che è c) e poi usare il '.'. E' una notazione
equivalente ma è più pesante come notazione.
Per quel che riguarda (*l)->elem se l è dichiarato come cella **l è corretto
altrimenti no.
Luca

 Gianni.
Ciao
Matic

 Luca
Ti ringrazio tantissimo sei stato chiaro ed esaustivo.


 stento a crederci
...
CUT
Grazie di nuovo per la spiegazione, comunque il testo che sto usando č uno
che ho trovato in casa "Jack Purdum  - C - jackson libri" in piů  magari
sono io che non sono bravo a usare i motori di ricerca!


Posto solo per fare un'aggiunta a quello che ti hanno già risposto.
Fai finta di avere una struttura del tipo
struct cella
{
   int elem;
   puntatore succ;
}
e di avere una struttura più esterna:
struct prova
{
   int pippo;
   cella campo;
};
Se tu dichiarassi:
prova p;
allora potresti fare:
   p.pippo=10;
   p.campo.elem=2;
   p.campo.succ=...
Se invece tu dichiari:
   prova *puntatore = &p;
allora dovresti fare:
   puntatore->pippo=10;
   puntatore->campo.elem=2;
   puntatore->campo.succ=...
In pratica l'operatore "->" si usa per beccare i campi della truttura 
puntata. Se uno dei campi è a sua volta una struttura, allora questo va 
ancora puntato con "->" ma i suoi sotto-campi sono raggiungibili 
normalmente tramite il punto (a meno che il sotto-campo non sia 
anch'esso un puntatore, e lì si ricomincia da capo).
Spero di non averti confuso ulteriormente...
-- 
Nella vita una sola cosa è certa: se la storia ci ha insegnato qualcosa, 
è che si può uccidere chiunque.
(Michael Corleone)
Posted from X-Privat Free NNTP server - 
www.x-privat.org
Newsgroup: it.comp.lang.c
Titolo: Problema con stringhe - InStr

Salve!
Mi piacerebbe sapere se esiste una funzione C/C++ simile a InStr di Visual
Basic, o cmq una API. Il mio scopo è quello di ricercare all'interno di un
file delle determinate sequenze di caratteri, come i TAG ID3v2 degli MP3.
Grazie 1000!!!!!!
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 file delle determinate sequenze di caratteri, come i TAG ID3v2 degli MP3.
Strstr() per le ricerche "stupide".
Se cerchi qualcosa di piu' sofisticato (dubito pero' che in VB avessi 
qualcosa di simile) guarda:
- espressioni recolari, le hai nativamente sotto Unix, altrimenti se usi 
  LCC-win32 hai gia' una libreria apposita, se no ci sono le PCRE 
  multipiattaforma
- implementa una ricerca ottimizzata per esempio con gli algoritmi di 
  Boyer-Moore o Knuth-Morriss-Pratt (sperando di aveer scritto giusto)
-- 
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."

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

come  posso scrivere una funzione che accetta una struct generica tipo
void* ?
grazie 
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 void* ?
Non e`  che la domanda  sia molto chiara...  void* e` un  puntatore, non
una  "struttura generica". Puoi  ovviamente  convertire  un puntatore  a
struttura in  un puntatore a void  (e viceversa) senza problemi,  ma per
poter operare devi avere a disposizione il tipo originale:
struct foo {
        int bar;
        int quux;
};
int f(void *p) {
        struct foo *pf;
        p->bar = 123;   /* ERRORE: non posso dereferenziare un puntatore
                           a void
                        */
        pf = p;
        pf->bar = 123;  /* Ok */
        return pf->quux;
}
Puoi al limite  creare una struttura 'base' e simulare  quello che in un
linguaggio OO sarebbe un upcast:
struct base {
        int a;
};
struct d1 {
        struct base base;
        int b;
};
struct d2 {
        struct base base;
        float c;
};
void f(void *p) {
        struct base *base = p;
        base.a = 123;
}
int main() {
        struct d1 d1;
        struct d2 d2;
        f(&d1);
        f(&d2);
        printf("d1.base.a = %d\n", d1.base.a);
        printf("d2.base.a = %d\n", d2.base.a);
}
 
Nota che  la cosa  funziona perche`  in C  l'indirizzo di  una struttura
coincide con l'indirizzo del primo membro:
&d1 == &d1.base == &d1.base.a
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
#include <stdio.h> 
int main(void) {printf("\t\t\b\b\b\b\b\b");
printf("\t\t\b\b\b\b\b\b");return 0;}

 printf("ttbbbbbb");return 0;}

Newsgroup: it.comp.lang.c
Titolo: Cancellazione Contenuto  File

Scrivo su dei file txt con fprintf poi vorrei cancellare il contenuto del
file stesso.
Esiste un modo per farlo?
------------------------------------
Tore di 
www.sampdoria.tk
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 Esiste un modo per farlo?
Se intendi 'troncare a 0 la dimensione', ti basta la fopen:
fopen(nomefile, "w");
fclose(nomefile);
-- 
Mat/tia Belletti - Undergraduate student @ 
cs.unibo.it
ICQ: 33292311    - email: 
mbel...@cs.unibo.it
IRC: RedGlow     - site(s): 
http://www.cs.unibo.it/~mbellett
Linux registered user 299762 @ Linux registered machine 213003

 fclose(nomefile);
Cavolata:
FILE *f = fopen(nomefile, "w");
fclose(f);
pardon ;)

Newsgroup: it.comp.lang.c
Titolo: gettimeofday()

Salve a tutti,
sto facendo un programmino che deve stampare il tempo trascorso 
dall'ultimo boot nella forma hh:mm:ss usando la funziona gettimeofday().
Sinceramente, ho letto la man page ma non ho assolutamente capito che 
parametri vuole per funzionare!
Qualcuno mi puo' illuminare??
Grazie,
Maldoror.


prima di tutto mi sembra che potresti anche usare semplicemente
time(0) (o time(NULL)) che ritorna il numero di secondi
trascorsi dal 1/1/1970. In pratica e' lo stesso valore
di secondi che ti ritorna gettimeofday() nel campo tv_sec della
struct timeval.
ti faccio un estratto condensato dal man (che mi sembra comunque molto 
chiaro....)
#include <sys/time.h>
int gettimeofday(struct timeval *tv, struct timezone *tz);
gettimeofday  can get the time as well as a timezone.
tv is a timeval struct, as  specified in /usr/include/sys/time.h:
        struct timeval {
                long tv_sec;        /* seconds */
                long tv_usec;  /* microseconds */
        };
The  tv_sec  member of the struct is the number of seconds
since the Epoch (01/01/1970), and tv_usec is  the  amount
of microseconds past the current tv_sec value.
The tz argument is a timezone  IS OBSOLETE and CAN BE IGNORED.
Quindi ecco un programmino minimo che usa getttimeday()
#include<stdio.h>
#include<sys/time.h>
int main()
{
   struct timeval tval; //struttura in cui ritorna i dati
   gettimeofday(&tval,NULL);
   printf("Dal 1/1/1970 sonon passati\n");
   printf("%d secondi e %d microsecondi\n",
           tval.tv_sec,tval.tv_usec);
   printf("(con time(0) ho:  %d secondi )\n",time(0));
   return 0;
}
quindi, se ti sei salvato il numero dei secondi dell'ultimo
boot fai la differenza e poi convertirla in ore, minuti e secondi
e' banale.
ciao,
g.

 
Grazie mille per la risposta!
Il problema pero' si e' spostato :( Io leggo le info riguardo al tempo 
dell'ultimo boot dal file /proc/stat alla voce btime.
Quindi ho un vettore di char con memorizzato una cifra per elemento.
Sinceramente non so proprio come convertire gli elementi del vettore in 
un intero, per poi fare la differenza con il valore di ritorno di time o 
gettimeofday!
E poi, c'e' una funzione che converta dai secondi alla data in formato 
HH:MM:SS?
Grazie mille! Sono un bel po' ignorante purtroppo...
Maldoror.

 Grazie mille! Sono un bel po' ignorante purtroppo...
non so se c'e' ma e' ci metti piu' tempo a cercarla
che a farlo da  solo...
se hai un numero di secondi t, allora le ore (che sono uguali a 3600 sec)
sono uguali a
h = t / 3600;
poi togli i secondi delle ore:
t -= h*3600;
i minuti sono di 60 secondi quindi:
m = t / 60;
e togli i minuti e ti rimangono i secondi:
s = t - 60*m;
poi (supponendo che le ore siano meno di 99....)
per formattare come vuoi tu basta usare una printf (bisogna che ti studi
le varie possibilita' che ti da')
printf("%02d:%02d:%02d\n",h,m,s);
ciao,
g.
Newsgroup: it.comp.lang.c
Titolo: file da analizzare

vorrei  analizzare un file con una mia elaboorazione, poi il risultato
slavarlo in un altro..... per dare il percorso da cui prendere ed in cui
salvare il file cosa devo fare?
grazie


I'm not prejudiced, I hate everyone equally.

grazie, ma mi sa che mi hai dato il metodo per linux!!!! o č identico anche
per win?
"Antonio barbone" <bar...@raffaello.home> ha scritto nel messaggio
news:slrna7ni8v...@barbone.bagnoli.home...


 per win?
non conosco bene win, ma il concetto dovrebbe essere quello .... dovrebbe 
essere qualcosa tipo
c:\\Documenti\prova\file.dat
prova ....


tnx
"Antonio barbone" <bar...@raffaello.home> ha scritto nel messaggio
news:slrna7t1v1...@barbone.bagnoli.home...


 c:\\Documenti\prova\file.dat
Se usi la backslash devi sempre metterla doppia:
c:\\Documenti\\prova\\file.dat
La slash funziona ugualmente:
c:/Documenti/prova/file.dat
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
La vasca da bagno fu inventata nel 1850, il telefono nel 1875.
Se fossi vissuto nel 1850, avrei potuto restare in vasca per 25 anni
senza sentir squillare il telefono

 ha scritto nel messaggio
news:a5oegi$1qo$1...@dreamland.darkstar.net...

Newsgroup: it.comp.lang.c
Titolo: undefined reference to `SCardEstablishContext'

Ciao mi trovo questo errore, quando faccio questa operazione
rv = SCardEstablishContext(SCARD_SCOPE_SYSTEM, NULL, NULL, &hContext);
premetto che ho dovuto cambiare alcuni include perchè altrimenti
nontrovava il file ad esempio ho dovuto cambiare:
#include </usr/local/include/PCSC/pcsclite.h> nel file winscard.h
perchè lui puntava a PCSC/pcsclite.h ed
#include </usr/local/include/PCSC/wintypes.h> nel file pcsclite.h
perchè lui puntava a /PCSC/wintypes.h.
Se faccio rv = SCardEstablishContext(); Mi dice che non ho tutti gli
argomenti come giusto che sia.
ma se faccio rv = SCardEstablishContext(SCARD_SCOPE_SYSTEM, NULL,NULL,
&hContext);
mi becco undefined reference to `SCardEstablishContext'
Avete qualche dritta
Saluti
Luca


Questo errore mi sembra un errore di link piuttosto che di 
compilazione.  Manca la libreria.
Tanti auguri di Buon Natale.
Ciao
Giovanni
-- 
   A computer is like an air conditioner,
   it stops working when you open Windows.
   < 
http://giovanni.homelinux.net/
 >

 mi becco undefined reference to `SCardEstablishContext'
Potrebbe essere un errore del linker: devi aggiungere il riferimento
alla libreria
in cui si trova questa funzione.
Quando chiedi aiuto su un NG ricordati di indicare sempre che
compilatore usi
e soprattutto il testo esatto dell'errore.
ciao
Giacomo

 Luca
si man gcc
scherzi a parte che opzioni passi al compilatore?
devi usare:
* I (i maiuscolo) per specificare il percorso degli include
* L (l maiuscolo) per specificare il percorso delle librerie
* l (l minuscolo  per specificare il nome della/a libreria
ex:
-I/usr/include/MIA_LIBRERIA
-L/usr/lib -lMIA_LIBRERIA1 -lMIA_LIBRERIA2
dove MIA_LIBRERIA* sul file sistem sar� qualcosa del tipo:
/user/lib/libMIA_LIBRERIA*.so
spero tu riesca a risolvere...
non � che il compilatore e il linker magicamente possono sapere dove
stanno i tuoi include e librerie eh...
Non conosco questa libreria in particolare ma su linux spesso librerie
pi� complesse hanno una utiliti a riga di comando per recuperare i flags
da passare al gcc
ad esempio per l'SDL:
sdl-config --cflags (per compilatore)
sdl-config --libs (per linker)

 più complesse hanno una utiliti a riga di comando per recuperare i flags

Newsgroup: it.comp.lang.c
Titolo: Suggerimento

Ciao ciao, volevo chiedere se c'e' qualcuno che sa' dirmi come mai questo
semplice programma non fa quello che voglio.
Infatti il compilatore non mi da' errori, ma non funziona a dovere.
Dovrebbe solo contare i cerchi in file dxf e stampare a video il numero.
Ecco il listato:
#include <stdio.h>;
#include <string.h>;
#include <stdlib.h>;
void main()
{
char file[30];
FILE *fp;
char s[80];
int k=0;
printf("\n\n\nInserire il nome del file DXF: ");
scanf("%s", &file);
fp = fopen(file, "r");
if(fp == NULL) {
  printf("Il file %s non esiste.\n", file);
  exit(1);}
do{fscanf(fp, "%s", s);
if(!strcmp(s, "CIRCLE")) k++;
}while(strcmp(s,"ENDSEC"));
fclose(fp);
printf("%d", k);
}
Che ne pensate???
Ciao ciao e grazie.:-))
Stefano.

scanf("%s", &file);
scanf( "%s", file ) ;
&file e' ridondante in questo caso, perche' file decade nel puntatore
al suo primo elemento quindi &file corrisponde in valore (non nel
tipo) a file (ovvero, dato il fatto che decade, a &file[0]).
--
Andrea Laforgia (
andrea_...@bigfoot.com
)
-----------------------------------------------------------------------
"There is nothing better for understanding a kangaroo than seeing it jump."
[D.Grune, C.J.H. Jacobs]

Prova a sostituire
      scanf("%s", &file);
con
      scanf("%s",file);
;-)

void main()
Cambialo in : int main(void)
ciao

Newsgroup: it.comp.lang.c
Titolo: Un aiuto sul passaggio dei parametri.

Salve.
Da pochi giorni mi sto cimentando col c.
Ho un problema col passaggio dei parametri ad una funzione.
Ho creato un programmino per la lettura di un file ascii e la successiva
scrittura in un database (MySQL su Linux).
So che per la apertura e' necessario creare un puntatore ad una struttra
FILE definita in stdio.h, quindi FILE *f1.
Faccio f1= fopen(nomefile, "r"). Tutto ok.
Mi sono creato poi una funzione per la lettura del file e la scrittura
sul database.
La dichiarazione sul file principale e' void Leggi( FILE *f1); e gia'
qui non sono molto sicuro se la dichiarazione e' giusta.
Chiamo la funzione con Leggi(f1).
La definizione della funzione e': void Leggi(FILE *f1) seguita dalle
relative istruzioni.
Ora se la dichiarazione e la definizione vengono fatte tutte sullo
stesso file funziona, ma se la dichiarazione viene fatta sul file
principale e la definizione la faccio su un altro file sembra che non
riesca a passare il parametro, infatti la compilazione e' ok ma la
funzione non funziona, scusate il gioco di parole.
Dove sbaglio?
Grazie.
--
  Mauro Sanna
(
mrs...@tin.it
)
--
Automatic posted from 
mail.tin.it
 [194.243.154.49]
via Mailgate Server - 
http://www.mailgate.org


Ciao Mauro
Prova cosi':
crea un file .h in cui il prototipo della funzione sia
extern void Leggi(FILE *);
includilo nel file .c
Dovrebbe funzionare (fammi sapere)
Ciao Luciano
Newsgroup: it.comp.lang.c
Titolo: procedura che ritorna valore statico.

Ho dichiarato una procedura
static int Procedura( bla bla )
{
        fai qalcosa.....
}
il compialtore però mi da un Warning perchè l'ho dichiarata come static...
perchè ??
garzie
Nick

il compialtore però mi da un Warning perchè l'ho dichiarata come static...
Non so perché ti dia il warning, cmq quella funzione non sta ritornando un
valore statico, ma è statica essa stessa, pertanto la sua visibilità risulta
limitata all'interno dell'unità di compilazione (che penso non si chiami
così, ma non sono sicuro, in pratica, all'interno del file sorgente) in cui
l'hai definita, anche se la dichiari da altre parti.
Lanugo

cosģ,
E' la stessa cosa.
In inglese vengono dette "translation unit" (unita' di traduzione).
Newsgroup: it.comp.lang.c
Titolo: return (0)

ciao e scusate la domanda banale:
in C 0 e' falso e tutto cio' che e' diverso da zero e' true...allora perche' la
main ritorna, nel caso in cui non ci fossero errori, sempre 0 ???
c'e' un motivo particolare ???
mi spiego: in tutti gli esempi di codice in C sui libri vedo sempre alla fine
della main return(0), perche' si sceglie di default che il valore di ritorno
sia false e non sia true???
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 c'e' un motivo particolare ???
Il valore restituito da main() non e' da intendere come
vero/falso, ma esattamente come codice numerico di terminazione.
Da questo punto di vista, 0 (zero) e' usato, per convenzione, 
per indicare la mancanza di errori.


sia false e non sia true???
secondo me *è per comodità*, perché un programma in caso di
terminazione anomala deve restituire al sistema operativo un numero
che possibilmente indica la ragione di detto malfunzionamento (e i
numeri con cui ritorna un funzionamento anomalo dovrebbero essere
diversi *invece se ritorna un funzionamento corretto solo uno*) in
modo che se nella variabile "v" si trova il valore di ritorno del
programma scrivendo semplicemente 
if(!v)  /*il programma è finito bene*/
else switch(v) /*il programma è finito male e perche'*/
                      { case 3 :  ecc
                        case 4 :  ecc
                        .....................
                        default : ecc
                      }
controlla tutti i casi. Viceversa nel caso tornasse 1 per  dire che
tutto è ok  mi sembra tutto più complicato; o mi sbaglio?

sia false e non sia true???
Semplice comodita'.
In genere usi il codice di ritorno 0 per dire nessun errore... tutti
gli altri valori per indicare errore. Questo e' l'uso piu' grezzo:
puoi affinare il meccaniscmo stabilendo diversi tipi di errore (anche
attraverso un sistema di FLAG). Se tu facessi ritornare un bool
(ovvero 0 in caso di errore, un valore diverso altrimenti) non
potresti implementare questo meccanismo.
Poi il main ritorna 0 in caso di successo per convenzione (avrebbero
potuto decidere che tornava -26, ma per vari motivi e' piu' comodo lo
0): cosi' da uno script puoi controllare la corretta/scorretta
terminazione di un programma senza dover prima scoprire come l'autore
ha voluto implementare la cosa.
Mox :)

 0 ??? c'e' un motivo particolare ???
principalmente per ragioni storiche. Il C e` nato per Unix, e in Unix la 
convenzione e` proprio che un programma che termina correttamente 
restituisca 0.
ciao Anto
-- 
Antonio Cuni, 19 anni, studente
Brainbench C++ Master: 4.73, higher than 99% of all previous test takers.
C Language: 3.79, higher than 92% of all previous test takers.
Guida C/C++ di Programmazione.it: 
http://cpp.programmazione.it
Newsgroup: it.comp.lang.c
Titolo: engineSMS SDK multithread per linux

Ciao è disponibile per il download la versione
multithread di invio SMS per sistemi linux.
La libreria è completamente funzionante e concessa come
freeware.
A corredo anche un software in fase di sviluppo che
permette di gestire i contatti ed inviare in parallelo
più SMS in un colpo.
http://www.kuht.it/modules/mydownloads/viewcat.php?cid=49&orderby=hitsA

 
http://www.kuht.it/modules/mydownloads/viewcat.php?cid=49&orderby=hitsA
mmm forse sono cieco io ma in quella pagina non vedo nessun SDK, tanto meno 
per linux.
bye
Dade 

 meno per linux.
Il link è il sito ospite...se vedi la terza voce, si chiama goSMS
Newsgroup: it.comp.lang.c
Titolo: differenze sorgenti C e c

Scusate l'ignoranza ma da poco tempo ho scoperto che si possono considerare 
sorgenti C e c. (linux/gcc/g++)
Sapreste indicarmi le principali differenze (o dover andarlo a leggere visto 
che non sono riuscito a trovarlo in rete visto l'impossibilità di 
specificare le maiuscoloe e minuscole)?
ciao e grazie.
-- 
__________________________________
"Ama e fai c'ho che vuoi".... 
__________________________________

 specificare le maiuscoloe e minuscole)?
".C" e' utilizzato (convenzionalmente da gcc) come (una delle)
estensione dei sorgenti C++, ".c" e' l'estensione classica usata
per i sorgenti C.
http://www.gnu.org/software/gcc/onlinedocs/
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Newsgroup: it.comp.lang.c
Titolo: gcc -> link libbrerie

lcc (windows) mette le libbrerie mancanti in automatico.
su gcc
bisogna linkarle, come si fa?
vorrei ad esempio usare qste libbrerie
#include <stdio.h>
   #include <stdlib.h>
   #include <unistd.h>
#include <errno.h>
   #include <string.h>
   #include <sys/types.h>
#include <sys/socket.h>
   #include <netinet/in.h>
   #include
<arpa/inet.h>
   #include <sys/wait.h>
   #include <signal.h>
(quelle standard per socket:
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>)
--------------------------------
Inviato via 
http://usenet.iol.it


I'm not prejudiced, I hate everyone equally.

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

Borland Turbo C++ ver 1.01
programma:
#include <stdio.h>
int main()
{
	printf("Hello, world\n");
	return 0;
}
se compilo con l' IDE è tutto ok
se compilo con linea di comando:
	  tcc prova.c
	  tlink  prova, prova, ,\tc\classlib\lib\tclasss
ho il seguente messaggio di errore:
undefined symbol _PRINTF in module prova.c
qualcuno sa indicarmi dove sbaglio?
grazie - S.
--  
Postato da Virgilio Newsgroup: scopri i nuovi gruppi 
Eros, foto e video a 
http://newsgroup.eros.virgilio.it

Sandro ha scritto:

E' un errore molto strano... prova a compilare con il gcc o con un altro 
compilatore. Nel codice non ci sono errori.
Luca


l' avevo pensato anch' io.
Allora (bovinamente) ho provato a linkare le librerie una ad una
senza alcun risultato....    :-(
ciao - S.


>
e' sospetto che il simbolo sia in maiuscolo, controlla che non sia 
attivata qualche 'conversione' dei simboli, per quanto ricordo i linker 
sono case sensitive ed il simbolo dovrebbe essere _printf

mmm ha scritto:

RISOLTO!
intanto TCC deve essere usato con lo switch -c per generare
soltanto il file oggetto, altrimenti genera pure l' EXE.
TCC -c prova.c
per linkare si deve usare la seguente sintassi:
tlink c0s.obj prova.obj, prova.exe, NUL, c:\tc\lib\cs.lib
il nocciolo della questione è c0s.oby (c<zero>s.obj)
c0s.obj (accidenti a lui!) è così definito:
c0s.obj is the C++ program initialization code needed to
initialize variables
grazie a tutti, S.

Newsgroup: it.comp.lang.c
Titolo: Leggere e copiare clipboard

sapete se nel compilatore Mingw o Djgpp
ci sono delle funzioni o Api, per Windows, che
permettono di copiare la clipboard e di scriverla
in un file.txt.
Vi ringrazio

Over ha scritto:

Con Djgpp non so, ma con mingw trovi tutte le funzioni dichiarate in 
"windows.h" e dovrai linkare almeno la "libuser32.a".
Non ho mai provato, per cui non so dirti se devi includere o linkare 
qualcos'altro.
Remo.D

ok, ti ringrazio.
Ciao

Newsgroup: it.comp.lang.c
Titolo: Ancora Matrici dinamiche :)))

C....:(
nessun problema..... puoi passare un oggetto del tipo int ** e farci
quel che ti pare.. potrai indirizzare l'elemento [x][y]
tranquillamente.
cod
p.s.
ora mi sorge un dubbio... ma il compilatore come fa a sapere qual é il
valore max di y????? io l'ho fatto... ma era qualcos'altro...... bhooo
usalo, se non va dimmelo

va dimmelo
Azz... spero che l'OP abbia narici belle grosse...
Andrea
--
Andrea Griffini, Programmer
http://www.netservers.com/~agriff

Scusatemi, ma non sarebbe stato + semplice create una pila con una struct?
es:
struct pila{
    int pippo;
    int pluto;
    struct pila *elementopila;
};
Non sono un esperto, ma forse questo era + semplice e + flessibile da
gestire.

NO! ... questo e' un errore grave.
hehehehe! infatti infatti :) perfettamente ragione
mi era sorto un grave dubbio dopo che avevo risposto
il problema é che l'ho confuso con un'altra cosa!
avevo preso come riferimento il 2nd parametro di main,
non pensandoci che quello era un puntatore a puntatori...
quindi era ovvio che argc[x][y] li fungeva!
per aver commesso un così grave errore, che faccio???
cod

Newsgroup: it.comp.lang.c
Titolo: CERCO COMPILATORE C/C++

Sono alle prime armi nella programmazione : fino ad ora mi sono cimentato
solo nel visual basic . C' č qualcuno che potrebbe dirmi
dove trovare un compilatore C freeware ?
e-mail 
tde...@tiscalinet.it

 ha scritto:

www.delorie.com
P.S. Perche' nessuno legge mai i post precedenti?!?!? Tipo "HELP!!!
CERCO COMPILATORE C" del 3/1/2000 e le conseguenti risposte...
 Ciao, Luca.
 Reply to 
luca....@tiscalinet.it
Newsgroup: it.comp.lang.c
Titolo: Colorare il testo

Salve a tutti, potreste dirmi come si fa a stampare (a video) del testo con
colori diversi (sono un neofita quindi se scrivo qualche boiata abbiate
pazienza...). Grazie in anticipo.
Joey

Dipende dal compilatore che usi e, soprattutto, dal sistema operativo.
Joey <vin...@tin.itX> wrote in message 82e55v$ih9$1...@nslave1.tin.it...


Dipende dal compilatore che usi e, soprattutto, dal sistema operativo.
Come compilatore uso il Rhide, e il sistema operativo e' l'MS-DOS.

textcolor(colore) per settare il colore e
textbackground(colore) per settare lo sfondo (tutte e due in conio.h,
assieme ai codici colori)
Poi usa cprintf al posto di printf (sul Borland e' cosi', sul DJGPP non ci
ho fatto caso).
Marco

Grazie 1000

 colori diversi (sono un neofita quindi se scrivo qualche boiata abbiate
Nel Borland (turbo) C++ c'era la funzione cprintf()
Comunque è dipendente dal compilatore, essendo fuori standard.
--
Alessandro Monti

 colori diversi
Con la libreria standard non si può ma molti compilatori forniscono
funzioni non standard adatte allo scopo per le quali ti rimando alla
documentazione del tuo.
EMG

pazienza...). Grazie in anticipo.
Usi Windows, quindi suppongo che il seguente codice vada bene.
/* per compilatori DJGPP/Borland */
#include <conio.h>
void scrivi_stringa( int x, int y, const char * s )
{
     int i ;
     gotoxy( x, y ) ;
     for ( i = 0 ; s[i] ; i++ )
     {
         textcolor( i % 15 + 1 ) ;
         putch( s[i] ) ;
     }
}
main()
{
    scrivi_stringa( 10, 10, "Questa e' una prova !" ) ;
}
--
Andrea Laforgia
andrea_...@bigfoot.com

Newsgroup: it.comp.lang.c
Titolo: C in dos. Come?

Ciao a tutti. Vorrei provare ad usare il C in MS-DOS. Che compilatore mi
consigliate di usare? dove lo trovo?
Grazie!!
--
----------------------------------------------
ICQ NUMBER: 147421455
http://www.posieidon.3000.it
http://posieidon.supereva.it



-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 Grazie!!
io ho una vecchia versione di Quick C ed ancora va bene
altrimenti ti scarichi il Turbo C della Borland

 consigliate di usare? dove lo trovo?
www.delorie.com
 , scaricati djgpp. Occhio che e' solo un compilatore, anche
se e' disponibile un ambiente di sviluppo (rhide) a parte.
Lanugo