mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c
Titolo: variabile char

Salve a tutti,
ho fatto questo piccolo programma che associa ad un carattere immesso il suo
corrispondente codice ASCII,
ma per alcuni caratteri mi dà un numero negativo.Si tratta,se non sbaglio,di
overflow.
Ma come mai una variabile fatta per contenere caratteri va in overflow?
Se le due variabili le dichiaro come int il programma funziona. Come mai?
Scusate la mia ignoranza,sbagliando si impara.
Ecco il "programma":
#include<stdio.h>
main()
{
 char car;
 char cod;
 printf("Digitare un carattere:");
 scanf("%c",&car);
 cod = car;
 printf("\nIl codice ASCII del carattere %c é: %d",car,cod);
}


|«Da un punto di vista obiettivo,
|preoccuparsi del senso o del fine della
|nostra esistenza mi è sempre parso
|assolutamente vuoto di significato.»
|                        Albert Einstein

magari mettere un:
    typedef unsigned char BYTE
e usare BYTE x queste cose
--
ciao
..::[xaero]::..


 Ma come mai una variabile fatta per contenere caratteri va in overflow?
Potrebbe essere implicitamente signed. Prova a definirla come unsigned
char.
EMG

 }
#include<stdio.h>
int main( int argc,char *argv[])
{
   fprintf(stdout,"Il codice asci del carattere %c e': %d\n",*argv[1],*argv[1]);
   return 0;
}
--
Ivan Molella
__LINUX__ the choice of the __GNU__ generation
icq# 97960484

Grazie a tutti per l'interessamento.
Marco

saranno (come tu ti aspetti) da zero a 255, in tutto 256.
No, dipende dalle piattaforme.
Non e' sempre vero che un char puo' assumere valori negativi.
La natura signed o unsigned dei char, varia da sistema a sistema.
Per SICUREZZA, si usi il prefisso unsigned.
--
Andrea Laforgia (ICQ 87230455)
"A C program's trick is sometimes a C++ program's trap"
                                          [S.B.Lippman]

Newsgroup: it.comp.lang.c
Titolo: leggere numero seriale disco

Chi è così colto da dirmi quale registro usare per leggere il numero seriale
del disco fisso del PC in DOS.
In C come è possibile leggere tale dato una volta chiamato il giusto INT?
Grazie
                     Filippo
Pensavo di cavarlmela in 'C'..... ma ho visto dei veri mostri in questo
newsgroup... Complimenti... sarà un piacere imparare con voi!

Grazie
Quando c'era ancora il DOS (sigh !) si poteva fare leggendolo nel boot
sector dell'HD.
Oggi, con Windows95,  si usa la funzione 0x69 dell'interrupt 0x21.
Appena trovo il codice del programma te lo spedisco :)
Andrea
----------------------------------------
"Meglio cieco che negro" (Stevie Wonder)
----------------------------------------
Newsgroup: it.comp.lang.c
Titolo: Problema!

Salve a tutti,
sono nuovo del linguaggio e nell'intento di scrivere un programmino mi sono
insorti  2 problemi:
1.Come faccio ad assegnare al cursore una posizione specifica, ad esempio:
   printf("Nome: ");
   printf("Cognome: ");
   "Qui gli dovrei dire al cursore di posizionarsi subito dopo la scritta
"Cognome:"    cosě da potergli inserire una stringa di caratteri".
2.Il secondo problema č il seguente:come si fa a leggere da un file di testo
riga per riga, e memorizzare ogni riga in un vettore differente?
Sono graditi esempi!
Vi prego di aiutarmi!
A tutti GRAZIE MILLE.
Saluti, Ale.
P.S.Utilizzo win95 e Tc come compilatore.

 riga per riga, e memorizzare ogni riga in un vettore differente?
Usa la funzione fgets() come nell'esempio che ho messo in un messaggio
precedente.
EMG

Sono graditi esempi!
Lo fa in modo automatico...cioe, se tu non metti il  "\n" alla fine della
stringa di testo, il cursore si riposizionerŕ subito dopo la stringa di
testo...
es:
printf("Nome :  ");
L'output sarŕ il seguente :  Nome :  _ (l'underscore sarebbe il prompt...)
se invece scrivi:
printf("Nome :  \n");
L'output sarŕ :
Nome :
_ (cursore)
In definitiva: per fare quello che vuoi tu devi giocare un po con gli
spazi...
Ciao, e se hai dei problemi chiedi pure!
by TDX



Newsgroup: it.comp.lang.c
Titolo: [principiante] Passaggio di paramatri tipo string per indirizzo. Dov'e' che sbaglio?

Sto facendo qualche esercizio di verifica sul passaggio di parametri.
Ho trovato qualche difficolta' nel passaggio di parametri per indirizzo di
dati di tipo stringa.
Dov'e' che sbaglio nel seguente codice:
// Compilato con Lcc-Win32.
#include <string.h>
#include <stdio.h>
#define MSG  "Stringa1"
#define MSG2 "Stringa2"
/* function prototyping */
void main (void);
void scambia (char *x, char *y);
void main(void){
    char s1[80], s2[80];
strcpy(s1, MSG);
strcpy(s2, MSG2);
printf("Indirizzo di s1: %X Contenuto '%s'\n", &s1, s1);
printf("indirizzo di s2: %X Contenuto '%s'\n", &s2, s2);
// scambia (s1, s2);
scambia(&s1[0], &s2[0]); /* passaggio per indirizzo?? */
printf("Indirizzo di s1 (dopo scambia): %X Contenuto '%s'\n", &s1, s1);
printf("indirizzo di s2 (dopo scambia): %X Contenuto '%s'\n", &s2, s2);
printf("s1 = '%s', s2 = '%s' \n", s1, s2);
}
/*------------------------------------------------------------------------
Procedure:     scambia ID:1
Purpose:       Scambia 2 stringhe
Input:          stringa A
                   stringa B
Output:       Stringa A  = B, Stringa B = A
Errors:        Non funge
------------------------------------------------------------------------*/
void scambia (char *x, char *y){
char *temp;
printf("Passato s1 = '%s' Indirizzo: %X\n\ts2 = '%s' Indirizzo: %X\n", x,
&x, y, &y);
temp = x;
x = y;
y = temp;
printf("Scambio s1 = '%s' Indirizzo %X <-> s2 = '%s' Indirizzo: %X\n", x,
&x, y, &y);
}
Dall'output prodotto sembra che non avvenga il passaggio per indirizzo :-(
Grazie a tutti.

y = temp;
x e y, parametri della funzione, sono, praticamente,
delle variabili locali della funzione stessa inizializzate
da parte del chiamante; questo giro scambia solo
le "variabili locali" in questione e non ha effetto sul
chiamante.
Non c'e` modo, in C, di fare cio` che desideri.  In
C++, naturalmente, e` banalmente semplice (usando
le stringhe, vere, del C++, non le pseudo-stringhe
che sono array presenti per compatibilita` C...):
    #include <string>
    void scambia(std::string& x, std::string& y)
    {
        x.swap(y);
    }
Alex

 y = temp;
strcpy( temp, x );
strcpy( x, y );
strcpy( y, temp );
Inoltre dovunque utilizzi %X devi invece mettere %p.
EMG
Newsgroup: it.comp.lang.c
Titolo: Gui in linguaggio C

Non esistono tutorial, libri, guide, che spiegano come creare un interfaccia
grafica in linguaggio C ( completa di tutto: dai bottoni, ai menů a tendina
etc ) sotto windows senza bisogno d'usare Glade, Visual C e compagnia?
Avete qualche libreria da consigliarmi?
PS: Capisco che con Visual C ad esempio sarebbe molto piů semplice, ma
vorrei partire dallo scheletro e farmela tutta da me.
Grazie

 
per partire dallo scheletro ti basta usare (almeno ) una libreria di astrazione 
del driver 2d e dell'uso della memoria video (tipo SDL ) cosi'puoi partire a 
farti la tua grafichetta disegnando e colorando quello che vuoi ... blittando su 
schermo ecc ...
se invece ( visto che ormai ...) partire da un livello di astrazione decente, 
potresti imparare direttamente le api windows che ti forniscono gia' loro le 
scorciatoie per renderizzare gli oggettini base con qlcune proprieta' ...
e se vuoi alzarti ancora piu' di livello puoi andare a studiarti ed ad usare le :
wxWindows, MFC, GTK/+/2, FLTK, and many more ...
ciao
ps: ti consiglio vivamente di iniziare dalle wxW o GTK perche' almeno inizi gia' 
ad entrare in una mentalita' di portabilita' e sharing di programmi (perche' non 
potra' durare all'infinito la supremazia windows) e quindi e' molto meglio 
partire gia' ora con una buona astrazione delle api video

 gia' che parliamo di GTK e GTK2... come stanno sotto win?
per ora non lo so ... non le ho ancora usate ... sto diventando deficente con le 
wxWindows che continuano a darmi errori di compilazione sotto msys(mingw) mi sa 
che va a finire a costringermi ad usare un linux con cross compilatore o a 
comprarmi il VC ...
puoi provarle ... le 2 mi pare diano supporto nativo per i WM ... pero' leggendo 
qua' e la mi sono visto meglio con le wxWindows che sono molto piu' strutturate 
come widget (cioe' riadattano solo le chiamate per il wm, ed al massimo se usi 
una feature che il WM non supporta lo emulano) invece le GTK2 sono proprio 
librerie (forse sono C come le prime ... non sono ad oggetti).
cmq le wxW stanno inserendo anche il supporto GTK2 (per ora in beta)
ciao

(Petr Williams)
vista lato computer, noi siamo il braccio e loro la mente

 oggetti).
Le GTK2 sono in C e sono ad oggetti.
-- 
Lawrence "Rhymes" Oluyede
http://loluyede.blogspot.com

 orientazione agli oggetti... ci riescono anche abbastanza bene.
Cosa non va bene nella definizione "sono una libreria ad oggetti" ?


Newsgroup: it.comp.lang.c
Titolo: Richiesta informazioni

Inviatemi le vostre segnalazioni di siti riguardanti la programmazione
in C e C++.
Grazie
mcico...@mail.ncn.it

in C e C++.
anche a me! anche a me!
Grazie!
(void*)
ic...@mindless.com
http://www.netcafe.interbusiness.it/users/icaro

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

Ho bsisogno di una funzione fft nella quale ineserisco 2 variabili , un 
vettore con tutti i dati e il numero dei campi . da essa voglio ottenere 
il risultato sulla stessa variabile.
Sono a corto di idee qulacuno mi da una mano ?????
 
	GRAZIE
	<SAX>


www.nr.com
Newsgroup: it.comp.lang.c
Titolo: problema con un esercizio

salve a tutti, ho un problema con un esercizio trovato online
dunque ogni riga(max 20) del file EFFEMERIDI.TXT contiene:
-la data del rilevamento astronomico nel formato gg/mm/aaaa
-una stringa di orari nel formato hh:mm in cui sono specificati: l'orario 
del crepuscolo, l'orario del sorgere e l'orario del tramonto della Luna
-una stringa che rappresenta un numero che determina la fase (da 0,00 a 
1,00. 1,00 luna piena)
e ho due tipi di strutture:
rilievo destinato a contenere i dati di una riga del file EFFEMERIDI.TXT
rilievi che contiene un array di strutture di tipo rilievo e il numero di 
righe effettivamente lette.
ora io devo creare una funzione leggi che: dato il nome di un file riempie 
una struttura di tipo rilievi contenente le righe lette dal file. La 
funzione restituisce 1 se l'operazione è andata a buon fine, altrimenti 
restituisce 0.
dunque ho così costruito le due struct:
typedef struct {
 int giorno, mese, anno, orec, minutic, ores, minutis, oret, minutit;
 float fase;
}rilievo;
typedef struct {
 rilievo r[MAX];
 int num;
}rilievi;
i problemi insorgono sulla funzione leggi.
in rete ho trovato questa soluzione:
int leggi(char nomefile[],rilievi *r)
{
 FILE* f;
 if((f=fopen(nomefile, "r"))==NULL){printf("Errore durante l'apertura del 
file %s", nomefile);return 0;}
 for(r->num=0;;r->num++)
  if(fscanf(f,"%d/%d/%d%d:%d%d:%d%d:%d%f\n",
 &r->r[r->num].giorno, &r->r[r->num].mese, &r->r[r->num].anno,
 &r->r[r->num].orec, &r->r[r->num].minutic,
 &r->r[r->num].ores, &r->r[r->num].minutis,&r->r[r->num].oret,
    &r->r[r->num].minutit, &r->r[r->num].fase)==EOF) break;
 fclose(f);
 return 1;
}
ma non riesco a capire il significato di tutte quelle &r->r[r->num] , cioè 
che cosa fanno??!
la funzione dovrebbe essere corretta, nascosto però è per me il suo 
funzionamento.
mi scuso per il lungo post, ma la questione è molto importante per me e 
volevo essere il più chiaro possibile.
vi ringrazio anticipamente :)

 funzionamento.
"r" è un puntatore a struttura.
"*r" è la struttura puntata da "r".
"(*r).num" è l'intero di nome "num" che c'è dentro la struttura.
"r->num" è solo un modo più comodo di scrivere "(*r).num".
"r->r" è l'array di nome "r" che c'è dentro la struttura puntata dal
puntatore di nome "r".
(Nota che ci sono DUE cose completamente DIVERSE che si chiamano entrambe
"r": cosa perfettamente lecita, ma che indica che chi ha scritto 'sta
funzione è un gran pasticcione!)
"r->r[3]" è l'elemento numero 3 (cioè il quarto!) dell'array "r" dentro la
struttura.
Da qui in poi, supponiamo che l'intero "num" valga 5 (cioè che ci troviamo
al sesto giro nel ciclo "for", visto che partiamo da zero)...
"r->r[r->num]" è l'elemento numero 5 (cioè il sesto!) dell'array "r" dentro
la struttura.
"r->r[r->num].giorno" è l'intero di nome "giorno" che sta dentro l'elemento
numero 5 (il quale elemento numero cinque è pure lui una struttura).
"&r->r[r->num].giorno" è un puntatote all'intero di nome "giorno" che sta
dentro l'elemento numero 5.
¿Claro?
--
Cingar
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/
Newsgroup: it.comp.lang.c
Titolo: Altro problema

Scusate se vi disturbo nuovamente, avrei voluto inserire questa cosa
nel thread di prima ma mi sono completamente dimenticato.
Dovrei richiamare (in Linux) da un programma C il comando "ps -aux |
greo root". Come posso fare?
Inizialmente pensavo di potermela cavare con un'unica execl, ma poi mi
sono reso conto che, se ho ben capito, non è possibile.
Che metodo mi suggerireste?
Grazie mille per qualsiasi aiuto :-)
MarKco (ICQ #228664405 - MSN 
ilsecondo...@hotmail.it
)
 
http://sole-luna.splinder.com
Triste e' l'uomo
che ama le cose
solo quando si allontanano.
(Baolian, libro dei pensieri Baol, I, vv. 1240-1242)

 
Se vuoi solo eseguire quell'espressione tramite shell, puoi passarla alla
funzione 'system'. Ma tu vorrai certamente anche catturare l'output. Per
questo compito però non bastano gli strumenti del C Standard; per cui la
questione è OT in questo newsgroup. Consulta "man popen" ed eventualmente
rivolgiti al newsgroup appropriato: it.comp.os.linux.development.
Max

rivolgiti al newsgroup appropriato: it.comp.os.linux.development.
Grazie mille! :-)

Newsgroup: it.comp.lang.c
Titolo: Manuale di C in Italiano --->cercasi

Sto cercando un manuale di C per sistema unix e\o per sistema windows
preferibilmente in italiano.
Bye Bye


Alessandro Bellini - Andrea Guidi
"Guida al Linguaggio C"
McGraw-Hill
Ciao, Giuseppe

Newsgroup: it.comp.lang.c
Titolo: fine file

ciao a tutti,
come faccio ad arrivare alla fine di un file per inserire una nuova stringa
con un solo comando?
io ho provato
while(!feof(file));
ma non va...


E come potrebbe andare ? fai solo un test sulla fine del
file senza cambiare nulla tra un test e l'altro !
A seconda di quello che vuoi fare ci sono diverse semplici
strade che richiedono solo la lettura del manuale....
1) se leggi le specifiche della fopen,
vedrai che oltre ad aprire un file in lettura
o in scrittura o in lettura/scrittura,
(con "r", "w", "r+" o "w+")
puoi anche aprire un file per l'append,
ovvero la scrittura in fondo al file
con "a". (E con "a+" per l'append con in
piu' la lettura).
Se usi windows e se il tipo di file che devi leggere/scrivere
e' binario, ricorda anche
di aggiungere una "b", tipo "ab", "wb", "rb", etc.
2) Se hai comunque acceduto al file in
altre posizioni e vuoi posizionarti in
fondo, allora guarda il manuale relativamente
alla funzione
int fseek( FILE *stream, long offset, int whence);
in <stdio.h> che e' quella che ti serve
per posizionarti in un punto del file che
viene specificato in funzione dell'inizio,
della fine o della posizione corrente.
Nel tuo caso per posizionarti alla fine
dovresti usare una fseek(miofile,0,SEEK_END);
ma leggiti comunque il manuale.
ciao,
g.
Newsgroup: it.comp.lang.c
Titolo: neofita

CIAO,
sono una neofita del linguaggio C,  qualcuno saprebbe indicarmi un testo che
sia contemporaneamente di facile comprensione e completo? Grazie
Chiara

Ira Pohl , Al Kelley
C, didattica e Programmazione
Addion Wesley
costo circa 70.000
Ciao
Nick
--
-----------------------------------------------------------
E-Mail    : 
nic...@nsoft.it
URL       : 
http://Geocities.com/SunsetStrip/Street/1306/
ICQ       : 26032113
-----------------------------------------------------------

Se non sai assolutamente niente:
Alessandro Bellini, Andrea Guidi
"Linguaggio C"
McGraw Hill
Costo 39.000 (ad aprile 99)
Paolo

 wrote in message
7va3ko$grd$1...@nslave1.tin.it...

Sono un neofita anch'io ma ho trovato un manualone eccezionale (formato PDF
o HTML) di oltre 650 pagine in rete.
E' ASSOLUTAMENTE gratuito (1.3Mb)
L'URL è 
http://www.aspide.it/trickyc
Buono studio
Ciao
--
----------------------------------------------------------------------------
-
Ing. Massimiliano Filippi
Dipartimento di Meccanica e Aeronautica
E-Mail : 
massim...@pcmorgana.ing.uniroma1.it
ICQ#  : 40355316
Tel. 
++39 06 44585272
Fax. ++39 96 4881759
----------------------------------------------------------------------------
-

Newsgroup: it.comp.lang.c
Titolo: tc3 e obj a 32bit

ho un problema con il turbo C 3 della borland.
devo linkar un obj compilato per in 386 e mi da il seguente errore
"32-bit record encountered in module modplay.asm"
dall'help sono riuscito a capire che chiamare il linker con l'opzione "/3"
ma se provo a linkare da shell mi mancano le librerie basi.
c'è un modo per impostare il tc in modo che faccia il link con tale opzione
in automatico???
se qualcuno può aiutarmi gli sarei grato!




basta che specifichi in tlink con /L il percorso delle librerie ...
tlink /3 /L percorso objfiles, exefiles, mapfiles, libfiles
cmq perché non ti crei un file di make e aggiungi l'opzioni
direttamente nel file di make?
cod

 direttamente nel file di make?
purtroppo ho sempre compilato e linkato direttamente dall'interfaccia del TC
se puoi dirmi come fare un file di make e cosa modificare ti sarei
immensamente grato.
By G,G

immensamente grato.
se crei un progetto con l'interfaccia, c'è l'opzioni di creare il
makefile .. una volta creato cerca le opzioni del linker, e aggiungi
la voce /3
ciao
cod

Newsgroup: it.comp.lang.c
Titolo: problema con l'aritmetica dei puntatori

dubbio :
int *arr[10];
printf("%d\n%d",arr,arr+5);
arr è un array di puntatori, quindi io m'aspetterei che il valore di arr+5
sia 5 byte maggiore di arr (visto che 1 puntatore è 1 byte,
indipendentemente dal tipo di dato a cui punta), mentre invece è
5*sizeof(int) (djgpp).
Meglio che mi dia al visual basic ?:)
ciao
Franz

indipendentemente dal tipo di dato a cui punta), mentre invece è
Sul mio sistema i ptr sono di 4 byte, indipendentemente dal tipo di dati a
cui puntano, ad esempio.
Non è specificata la lunghezza in byte di un puntatore, prova a controllarla
con sizeof.
Lanugo

 Lanugo
ciao
Franz
Newsgroup: it.comp.lang.c
Titolo: Lista delle funzioni cintenute in una DLL

Spero di non essere OT....
Dovrei utilizzare alcune funzioni contenute nelle librerie Microsoft come
KERNEL32.DLL e altre: esiste uno strumento che permette di aprire una dll per
vedere l'elenco delle funzioni che e' possibile richiamare con i relativi
parametri?? (Ho scaricato un programma chiamato Dependency Walker, ma ottengo
solo la lista senza i parametri)
In mancanza del tool che cerco: qualche sito che dia questo elenco con magari
una breve descrizione delle funzioni....
Ciao e grazie in anticipo per l'aiuto, Roberto

 una breve descrizione delle funzioni....
Se conosci un modo per spedirti 17 mega in modo indolore, io ho la guida
completa della Borland

Spero di non essere OT....
Dovrei utilizzare alcune funzioni contenute nelle librerie Microsoft come
KERNEL32.DLL e altre: esiste uno strumento che permette di aprire una dll per
vedere l'elenco delle funzioni che e' possibile richiamare con i relativi
parametri?? (Ho scaricato un programma chiamato Dependency Walker, ma ottengo
solo la lista senza i parametri)
In mancanza del tool che cerco: qualche sito che dia questo elenco con magari
una breve descrizione delle funzioni....
Ciao e grazie in anticipo per l'aiuto, Roberto
Newsgroup: it.comp.lang.c
Titolo: Programmino

Buongiorno a tutti.
Avrei bisogno di creare un "programmino" snello snello che ogni 5
minuti faccia un ping ad un indirizzo ip e in base al risultato
scateni un evento.
Cioè se risponde al ping fa una determinata cosa se no ne fa un'altra.
Ho bisogno di aiuto perchè non so più dove sbattere la testa.
Grazie mille in anticipo per l'aiuto.

 ...
#! /bin/bash
while 1
 do
  ping -c1 -w 15
  if [ $? == 0 ]
   then
     # host ha risposto
     # fai qualcosa
   else
     # host non ha risposto
     # fai qualcos'altro
   fi
 sleep 300  
 done
 

 ...
#! /bin/bash
while :


 ...
#! /bin/bash
while : 
 do
  ping -c1 -w 15 host



Grazie mille per la risposta.
Se ho ben capito basterebbe fare
#! /bin/bash
while :
 do
  ping -c1 -w 15 host
  if [ 172.29.4.1 == 0 ]
   then
     # istruzione per far partire il firewall
   else
     # altra istruzione
   fi
 sleep 300
 done
Il tutto con questa stessa sintassi.
Corretto?
Grazie ancora per l'aiuto, sei stato gentilissimo.

 Corretto?
no dovrebbe venir fuori qualcosa di simile a questo..
ping -c1 -w 15 172.29.4.1
 if [ $? == 0 ]
 then
comunque questo e' bash scripting non linguaggio C..
-- 
www.iuz-lab.info

 comunque questo e' bash scripting non linguaggio C..
E chi ha detto che il linguaggio C e` sempre 
la migliore scelta  per eseguire un compito?
E poi:
  exit_status = system("ping -c1 -w 15 host")
  /* o qualunque altra cosa si ritenga */
  /*  migliore di system() */
  if (exit_status == 0)
    then
      /* host ha risposto */
      /* fai qualcosa    */
   else
      /* host non ha risposto
      /* fai qualcos'altro
   sleep(300);
Comunque mi scuso per non aver messo OT.

 # istruzione per far partire il firewall
No il test e` sull' /exit/ /status/ di ping.


Cosa mi consigli allora?
Come avrai ben capito sono un asino fatto e finito di programmazione.
Solo che ho la necessità di fare questo script o programmino che mi
faccia un ping ad un server, se questo risponde deve far partire Wip
firewall, se no deve fare partire un'altra configurazione.
Se hai altre idee meglio del c sono tutto orecchi.
Grazie per la Tua pazienza.

 Comunque mi scuso per non aver messo OT.
-- 
www.iuz-lab.info

Newsgroup: it.comp.lang.c
Titolo: tree: rappresentazione intermedia del front end gcc

Salve a tutti
potreste indicarmi per favore , se sapete, dove trovare un po di 
documentazione sulla struttura dati tree
che costituisce il syntax tree prodotto dal front end di gcc
sono a digiuno di compilatori
e tutto quello che ho trovato è stato
http://arnolds.dhs.org/static/GCC/gccint.html#Macros%20and%20Functions
grazie mille
Lilla 

 che costituisce il syntax tree prodotto dal front end di gcc
RTL-3 e SSA per il 4.0. Trovi la documentazione sul sito del gcc
(
gcc.gnu.org
), oppure, se sei su linux: info gccint
Luca
-- 
Home: 
http://kronoz.cjb.net
Colui che sorride quando le cose vanno male ha pensato a qualcuno a cui
dare la colpa.


Ma ti interessa sapere qualcosa sugli alberi in generale o sugli alberi 
sintattici in particolare.
Se ti interessa in generale prova qui:
http://www.nist.gov/dads/
Ciao,
Cesare
Newsgroup: it.comp.lang.c
Titolo: Esiste una CLRSCR?

Salve a tutti! Ho bisogno di sapere se esiste in C ANSI, nel compilatore del
Visual Studio 6.0 una funzione che come nel pascal (la CLRSCR per
interderci) mi faccia un clear screen. Nell'help del Visual Studio mi diche
che esiste una funzione chiamata _CLEARSCREEN() ma č contenuta nell'header
conio.h Come devo fare?


Borland C++Builder Programmers Guide
system;  _wsystem.
Syntax
#include <stdlib.h>
int system(const char *command);
int _wsystem(const wchar_t *command);
Description
Issues an operating system command.
system invokes the operating system command processor to execute an
operating system command, batch file, or other program named by the string
command, from inside an executing C program.
Praticamente io, per aggirare il problema, userei il comando cls del dos; in
alternativa puoi usare un interrupt, ma no so quale; dovresti cercare una
lista.
Comunque probabilmente la funzione esiste, ma quasi sicuramente č
implementata come chiamata di sistema.
Se il programma č per windows invece dell'INT, dovrai usare una API.


nell'header conio.h esiste la funzione clrscr che viene implementata
anche nel visual c++ 6. però ovviamente, questo é causa di non
portabilità del codice (conio.h non é mai stato standarizzato, é
legato al sistema operativo) e funziona solo sulla console...
ciao
cod

Newsgroup: it.comp.lang.c
Titolo: cancellare un record in un file di testo

Ho un file di testo le cui righe sono campi di una struttura (che si
ripetono)
Vorrei cancellare un record dal file. So che esiste una funzione che crea
una copia del file copiando tutto tranne il record che si vuole eliminare,
e poi salva il file nuovo col nome del file vecchio andando a
sovrascriverlo, ma non  so il nome di questa funzione. Qualcuno saprebbe
aiutarmi?
Grazie
Giovanni
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 Grazie
non mi risulta proprio che esista una funzione
che fa queste cose.
ciao,
g.

Giovanni Resta ha scritto:

Del resto, supponendo di avere già le funzioni che leggono e scrivono un
record, non è che ci voglia molto a mettere insieme tale funzione:
   struct PIPPO; /* Ipotesi! */
   extern int readRecord(FILE * f, struct PIPPO * pr); /* Ipotesi! */
   extern void writeRecord(FILE * f, const struct PIPPO * pr); /* Ipotesi! */
   void deleteRecord(const char * filename, int delenda)
   {
      FILE * fOld = fopen(finename, "r");
      FILE * fNew = fopen("PIPPO.TMP", "r");
      int i;
      struct PIPPO r;
      for (i = 0; readRecord(fOld, &r) == 0; i++)
         if (i != delenda)
            writeRecord(fNew, &r);
      fclose(fOld);
      fclose(fNew);
      remove(filename);
      rename("PIPPO.TMP", filename);
   }
Gli affinamenti (es. usare tmpnam()) e i controlli sugli eventuali errori di
I/O li lascio come esercizio.
--
Cingar
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

       FILE * fNew = fopen("PIPPO.TMP", "r");
Oops! Ovviamente, leggasi "w" al posto di "r".
--
Cingar

Newsgroup: it.comp.lang.c
Titolo: cursore in dos...

come faccio a posizionare il cursore in dos, a cancellare lo schermo e tutte
queste cose qui?
nel mio manuale si parla di uso di interrupt (e' un po' vecchiotto),  non ci
sono librerie standard per questo?
grazie per le risposte
ciao

 wrote in message
82pcsp$n1h$1...@nslave2.tin.it...


sono librerie standard per questo?
Certo che no.
Come fanno ad essere standard delle operazioni cosi' legate
all'architettura usata ?
--
Andrea Laforgia
andrea_...@bigfoot.com

 gotoxy(a,b);  /* a,b interi    coord.max (35,25)*/
Scusami se ti correggo, probabilmente hai sbagliato a scrivere...
Con la gotoxy(x,y) le coordinate devono essere comprese tra x=1 e y=1
e x=80 e y=25.
Infatti con lo schermo in modalita' text(cioe' non agisci sui pixel
separatamente)
lo schermo e' diviso in 25 righe X 80 colonne;)
Sperando di essere utile!
--
 Byez By Roby "Offear" '82
 Unofficial Blind Guardian's Site:
 
http://surf.to/Blindguardian
 Mi raccomando visitatela!!!!!!!!

che compilatore usi ?
interesserebbe anche a me: TurboC e dos
Aranar
e-mail: 
ro...@geocities.com
http://www.nettaxi.com/citizens/Aranar/
   (above all VgaPlanets)
http://www.tempolibero.com/user/aranar
    (sopratutto VgaPlanets)

interesserebbe anche a me: TurboC e dos
#include <conio.h>
e sfrutta le routine contenute :
clrscr() ;
gotoxy() ;
--
Andrea Laforgia
andrea_...@bigfoot.com

 interesserebbe anche a me: TurboC e dos
Con le funzioni non standard dichiarate nell'header file conio.h
(gotoxy(), clrscr(), etc.).
EMG

Newsgroup: it.comp.lang.c
Titolo: FORTRAN77!!!!

Ciao,
so che non è il newsgroup giusto, ma qualcuno sa indicarmi dove posso
trovare la versione 77 o 90 di questo linguaggio di programmazione?
Grazie

trovare la versione 77 o 90 di questo linguaggio di programmazione?
GNU distribuisce la propria versione freeware del Fortran77 (vedi
www.delorie.com
)
Andrea Laforgia
Newsgroup: it.comp.lang.c
Titolo: Dov'è l'errore in questo prog?

Il programma è il seguente:
#include<stdio.h>
main(){
 char c;
 int resto;
 printf(" inserisci il primo ");
 scanf("%c",&c);
 while( c!='#'){
  resto= c % 2;
  switch(resto){
   case 0: printf("%c",c);
     break;
   case 1: printf("%c",c);
    break;
  }
 printf("inserisci il secondo ");
 scanf("%c",&c);
 }}
Il problema sta nel fatto che dopo che faccio una scelta ( inserisco il
valore a scanf) il prog stampa 2 volte il messaggio " inserisci il secondo.
Questo prog mi serve solo per capire un' errore che mi viene dato in un
progr + complesso.
Altro probl.: se immetto da scanf delle stringhe di testo che devono
rappresentare i giorni della settimana( LU, MA,ME,,,,,,VE)come posso
ordinare delle strutture , contenenti il campo giorno, in base al giorno?
Grazie mille a chiunque volesse rispondermi
P.S: Scusate l'ignoranza ma mi sto preparando per l'esame di Fondamenti di
informatica, e le difficoltà sono molte.
--
Fabio il "Cangaceiro"
fabio...@libero.it

#include<stdio.h>
main(){
 char c;
 int resto;
 printf(" inserisci il primo ");
 scanf("%c",&c);
 while( c!='#'){
  resto= c % 2;
  switch(resto){
   case 0: printf("%c",c);
     break;
   case 1: printf("%c",c);
    break;
  }
 printf("inserisci il secondo ");
 scanf("%c",&c);
                                printf("\nDEBUG il valore di c è %d %c "
,c,c);
}}
se metti la riga che ho aggiunto noterai che c vale sempre 10 dopo scanf
10 è il codice che ha trasmesso enter (insieme al codice 13 mi pare che pero
non va considerato)
devi pulire la variabile c prima del secondo scanf

 Il programma è il seguente:
Anche nel tuo caso l'errore è l'assenza dello svuotamento del buffer tra
una lettura e l'altra:
while ( getchar() != '\n' );
EMG
Newsgroup: it.comp.lang.c
Titolo: Funzione rand

Ciao una domandina veloce veloce: come mai la rand()  da risultati diversi 
su windows e linux?
Non dovrebbe essere ANSI C? (scusate se sto dicendo castronate)
Stefano

 Non dovrebbe essere ANSI C? (scusate se sto dicendo castronate)
La funzione è standard, ma può variare l'inizializzazione oltre
ovviamente a come internamente è generata la sequenza pseudocasuale.
Luca
-- 
Home: 
http://kronoz.cjb.net
Windows NT crashed.
I'm the Blue Screen of Death.
No one hears your screams.


La funzione e` standard, ma la sua implementazione no.  L'algoritmo 
suggerito nello standard ANSI e` un esempio che dovrebbe garantire la 
portabilita`.   Su linux la funzione rand() e` inplementata con 
l'algoritmo della random().
Dalla man page di rand():
The  versions  of  rand() and srand() in the Linux C Library use the 
same random number generator as random() and  srandom(),  so  the 
lower-order bits  should  be  as  random as the higher-order bits. 
However, on older rand() implementations, and on current implementations 
on different  systems,  the  lower-order  bits  are much less random 
than the higher-order bits.  Do not use this function in applications 
intended to  be  portable when good randomness is needed.
Ciao
Giovanni
-- 
   A computer is like an air conditioner,
   it stops working when you open Windows.
   Registered Linux user #337974  < 
http://giovanni.homelinux.net/
 >

Newsgroup: it.comp.lang.c
Titolo: data e ora

è possibile visualizzare/stampare la data e l'ora ?
uso lccwin32 2.1 e win98
grazie

č possibile visualizzare/stampare la data e l'ora ?
Prova cosě...
/*
 *  variabili...
 *
 */
time_t now; 	      /* ora corrente in secondi da 1/1/1970  */
struct tm *time_ptr;  /* contiene vari campi (gg, mm, etc)    */
char *string;         /* per memorizzare la data come stringa */
/*
 *  ...e routine
 *
 */
 
time(&now); 
/* trasforma time_t now in una struct tm */							           
time_ptr = localtime(&now); 
/* e ora la stringa */
string = asctime(time_ptr);
puts(string);
-- 
Rhodion
"I will show you fear in a handful of dust"

Newsgroup: it.comp.lang.c
Titolo: Contare le righe di un file

salve a tuuti io ho un problema con la funzione fgets, in particolare io vorrei contare le righe in un file già creato di tipo txt come posso fare? grazie a tutti 

 grazie a tutti
Potresti scansionare carattere per carattere il file (con fgetc) e contare i
caratteri "a capo" (\n o quello che è sulla tua piattaforma).
-- 
~~~~Slaine Mc Roth~~~~
**Linux User# 312607**
Quando si dice che si e' d'accordo su una cosa in linea di principio
significa che non si ha la minima intenzione di metterla in pratica.
                (Otto von Bismarck)
Newsgroup: it.comp.lang.c
Titolo: HELP!!!!!!1

Cerco disperatamente un programma in C/C++ che racchiuda una piccola
parte di assembler68000. Programmi tipo la riscrittura della procedura
Mergesort oppure l'implementazione del metodo di Quine-Mcklausky.
Grazie.
e-mail:   
tol...@reteitalia.net
icq          8180796

Mergesort oppure l'implementazione del metodo di Quine-Mcklausky.
Che esame devi passare ?

>Sono disposto anche a pagarlo il programma!!!!!!
Perchè ? Speri di trovare qualcuno che te lo faccia gratis ?
P.S. Toglimi una curiosità, cosa sono gli algoritmi
        di mergesort e di Quine-Mcklausky ?
        (scusa, ma sono un autodidatta dell'informatica)
        Sei sicuro di non trovarli già fatti in Rete,
        magari quardando tra la letteratura della Motorola  ?
Ciao e in bocca al lupo per l'esame !
Carlo Altieri

Carlo Altieri
Il mergesort è un algoritmo per ordinare due file fondendoli e
suddividendoli a ripetizione... 
----------> Renato 'HiTmAn' Salzano <-------------
Togli NUNCEPROVA dal mio indirizzo E-mail per risponder-
mi. .
*****************************************
*                                       *
* Sono sempre in cattiva compagnia      *
* sopratutto quando sono solo           *
*                                       *
* Frankie Hi nrg MC                     *
*                                       *
*****************************************

Newsgroup: it.comp.lang.c
Titolo: memoria dinamica :\

Non sono riuscito ad allocare dinamicamente memoria per un array di
stringhe da 1024 caratteri caduna (vorrei avere char var[n][1024], dove n
è da definire a runtime)
Qualcuno mi potrebbe scrivere come dichiarare la variabile, come
c/mallocare spazio, e come strcpyarci sopra ?
Grazie

:

Io ti do un medoto generico, sulle FAQ di comp.lang.c trovi anche un
trucchetto per fare un'unica chiamata a malloc per allocarti la
matrice e poi usare un po' di aritmetica dei puntatori per sistemarla
:)
<CODE>
char ** allocatore (int dim) {
    int i;
    char ** ritorno;
    ritorno = malloc (n*sizeof(char *));
    for (i=0 i<n; i++)
        ritorno[i] = malloc(1024);
    return ritorno;
}
</CODE>
Ovviamente servono dei controlli sul successo della malloc E un
sistema per deallocare la memoria allocata in caso di fallimento (tipo
che se fallisci al passo 4 devi fare la free di ritorno[0], ...
ritorno [3] e poi di ritorno, se vuoi cercare di salvare la
situazione).
Non vedo il problema sul farci una strcpy. Per scrivere nella 4 una
stringa fai:
strcpy (struttura[3], "tua stringa entro i 1024 caratteri")
Ti ricordo che struttura[3] e' un array di char che decade a puntatore
a caratteri quando lo passi alla strcpy, quindi il tutto funziona
perfettamente :)
-- 
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: prblemi con gcc e le glibc... un mondo triste fatto di standard che cambiano...

  Nella versione 2.9.. del gcc (in Debian-box) non riesco a compilare delle
  funzioni di libreria che avevo utilizzato (e compilato correttamente con 
  un gcc 3.2.. (in Slackware-box)) per il rilevamento degli errori e per il
  parsing  delle opzioni a linea di comando, le funzioni e le variabili
  inquisite sono:
  - strerror() non viene trovata. Pero' ho visto che c'e' perror() che
    dovrebbe essere equivalente per come l'ho usata io ... mi sembra strano
    pero' che non funzioni.
  - program_invocation_short_name: piu' pesante e' invece l'impossibilita'
    di
    usare questa variabile che ho usato in ogni messaggio di output del mio
    programmino per far capire che era il mio processo a parlare.
  - LA VERA SPINA SUL FIANCO: ho usato argp.h per parsare le opzioni a linea
    di comando ma non funzionava niente ...
  Dove sta il problema, queste funzioni sono state implementate 
  successivamente al gcc 2.9... (ne dubito) ? e' un problema della versione
  delle libc (dove compilavo era la versione ... ) ? oppure devo fare
  qualche inclusione esplicita con il -l<qualcosa> (cosa che ritengo piu'
  probabile ma non so, come si fa ? Oppure ancora e' meglio che appenda la 
  tastiera al chiodo e la smetta di programmare ...

   tastiera al chiodo e la smetta di programmare ...
Posta i pezzi di codice incriminati...
-- 
cat <<EOSIGN
Paolo Giarrusso, aka Blaisorblade(togliere solo REMOVEONLYTHIS per rispondere)
Kernel 2.4.20/2.5.63 on an i686; Linux registered user n. 292729
EOSIGN

   appenda la tastiera al chiodo e la smetta di programmare ...
Se non trova l'header non serve a niente nessuna opzione -l<qualcosa>, al
massimo -I<qualcosa>, ma dubito che nel caso specifico serva (/usr/include
dev'essere nel Path standard per la ricerca degli include).
Prima di tutto fai un bel "ls -1 | grep argp" per vedere se la libreria e'
presente, poi prova un "locate argp.h" se non la trovi (e non vuoi cercare
a mano i 3 o 4 posti in cui puoi trovare gli header).
-- 
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: problema banale con la lettura di caratteri da tastiera....

ho bisogno di processare una serie di caratteri in input.....
<CODE>
char c;
ancora:
printf("\nInserisci il carattere da mettere in coda: ");
c = getchar();
printf(" %c",c);
/*
Processazione dei caratteri........
............
............
*/
if (c != '.') goto ancora;
</CODE>
Il problema è che quando getchar() richiede il carattere dalla
tastiera, io sono costretto a battere anche INVIO;
quindi alla lettura successiva prendera INVIO, invece del carattere
che volevo realmente inserire......
Per risolvere questo problema avevo pensato di mettere un altra
getchar(), senza assegnare il char di ritorno (INVIO) alla variabile.
Tuttavia, possibile che non ci sia una soluzione più elegante?!
Per esempio una funzione come getchar() ma che non attenda
un consecutivo ENTER.....
Grazie a chi mi risponderà...
NM

 un consecutivo ENTER.....
Non in maniera standard. Puoi provare  a disabilitare il buffering dello
stdin, ma il  problema e` a monte. Di solito in  driver della console e`
posto in modalita`  "canonica", e aspetta il newline prima  di passare i
caratteri letti  al programma  in attesa. Puoi  settare il  terminale in
modo  non-canonico, ma  per fare  questo devi  ricorrere a  funzioni non
standard [1]. Tieni conto che, una  volta entrato in questa modalita`, i
caratteri  ti  arrivano  appena  digitati. Quindi,  se  l'utente  voleva
inserire 'a',  ma ha  schiacciato 'b'  e corregge la  sua scelta  con un
backspace (b, backspace, a) al  tuo programma arrivera` la sequenza 'b',
'\b', 'a', con tutte le complicazioni che ne derivano.
[1] Sia le ncurses (linux) che  la libreria di gestione della console di
DOS mettono a disposizione la funzione getch, che fa quello che chiedi.
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
Non ho ancora capito se il mio cane e` maschio o femmina:
quando fa la pipi` si chiude in bagno

 c = getchar();
[cut]
Ma non si potrebbe usare una scanf()?
PS: scusate se la domanda è sciocca, ma non sono un esapertone e con la
scusa posto anke i miei dubbi ;)
--
-------------------------------------------------------------------------
"Il pollo senza testa conosce solo il posto dove è stato,
 ma non vede dove va"
   da "Spice Girls", il film
  ____       ____                    ______
 |  _ \ __ _|  _ \ _ __   __ _ _ __ |__  (_) ___
 | |_) / _` | |_) | '_ \ / _` | '_ \  / /| |/ _ \   icq uin : 86622960
 |  __/ (_| |  _ <| | | | (_| | | | |/ /_| | (_) |  
parn...@email.it
 |_|   \__,_|_| \_\_| |_|\__,_|_| |_/____|_|\___/
-------------------------------------------------------------------------

Con scanf() il problema lo avevo ugualmente!
NM
Newsgroup: it.comp.lang.c
Titolo: funzione di ricerca in c

esiste o bisogna crearla? come?

cosa vuoi cercare ? dove ?

se io volessi cercare un file di nome ciao.txt nel mio disco fisso(c:) come
devo fare?
"FRaNCeSCo" <?@?.?> ha scritto nel messaggio
news:97yrb.118366$e5.42...@news1.tin.it...


 devo fare?
E' molto meglio che tu ti rivolga ad un newsgroup relativo
alla programmazione sotto il tuo sistema operativo (Win,Linux,...),
per esempio it.comp.programmare.win32
(visto che usi Outlook...)
Il C in quanto tale non conosce/gestisce la struttura del file-system
nel tuo sistema, quindi tipicamente devi usare delle funzioni
predisposte per manipolare le directory che dipendono dal
tuo sistema operativo o anche dal tuo compilatore.
ciao,
g.

 ha scritto nel messaggio
news:%7xrb.105693$e6.38...@twister2.libero.it...


 tuo sistema operativo o anche dal tuo compilatore.
Tuttavia, POSIX definisce una serie di funzioni per la manipolazione delle
directory, che anche Windows dovrebbe supportare:
#include <sys/types.h>
#include <dirent.h>
DIR *opendir(const char *name)
struct dirent *readdir(DIR *dir);
int closedir(DIR *dir);
HTH,
Marco
Newsgroup: it.comp.lang.c
Titolo: lista statica

Salve, innanzitutto vi porgo le mie scuse anticipate per la domanda
banale che probabilmente vi andro' a porre ma, come si suol dire,
nessuno nasce imparato.
vado al punto, sto facendo una lista statica e mi ritrovo un errore
causato da una variabile, globale a quanto credo.
in un file .h ho inserito la struttura della lista, mi spiace ma
devo inserirlo tutto il codice:
--- file.h ---
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define ANAGRAFICO_SIZE	5
#define MAX_LEN		50
typedef enum {maschio,femmina} Sesso;
typedef struct {
    char cognome[MAX_LEN];
    char nome[MAX_LEN];
    Sesso sesso;
} Persona;
Persona Anagrafico[ANAGRAFICO_SIZE];
int index;
int inserisci(Persona persona_da_inserire);
int ricerca(char *cognome);
int cancella(char *cognome);
void inizializza();
---- fine file .h ----
le funzioni in un'altro file, inserisco solo la prima tanto
l'errore lo
da anche solo con questa.
.. funzioni.c ----
#include "file.h"
void inizializza() {
    int index = 0;
}
int inserisci(Persona persona_da_inserire) {
    if (index < ANAGRAFICO_SIZE) {
	strcpy(Anagrafico[index].cognome, persona_da_inserire.cognome);
	strcpy(Anagrafico[index].nome, persona_da_inserire.nome);
	Anagrafico[index].sesso = persona_da_inserire.sesso;
	index++;
    }
    else {
	return -1;
    }
    return 0;
}
--- fine funzioni.c ---
Ovviamente ho un main in un'altro file.
L'errore che mi da in fase di compilazione e' il seguente:
In file included from lista.c:1:
soluzione.h:18: error: 'index' redeclared as different kind of symbol
Non capisco perche' non posso lavorare con quell'index.
Mi fate capire dove sbaglio gentilmente ? Mi sono bloccato da un paio
d'ore e rischio di rimanere impantanato se non capisco.
Vi ringrazio, saluti
--  
Postato da Virgilio Newsgroup: scopri i nuovi gruppi 
Eros, foto e video a 
http://newsgroup.eros.virgilio.it

Ho risolto, grazie lo stesso.
index non potevo utilizzarlo.


 index non potevo utilizzarlo.
Sbagliato. Puoi utilizzarlo benissimo (anche se le variabili globali e' 
meglio evitarle e in un file header non vanno proprio messe), 
semplicemente non dovevi ridichiararlo.
Un metodo per usare una variabile globale in un progetto con piu' file 
potrebbe essere questo (non ne sono sicuro, correggetemi se sbaglio):
---file.h---
...
extern int variabile_globale;
...
---fine-----
---src1.c---
#include "file.h"
...
variabile_globale=10;
...
---fine---
---src2.c---
#include "file.h"
...
int variabile_globale;
...
---fine---
In pratica il file di intestazione, che viene incluso in tutti i file di 
codice, contiene la dichiarazione extern. In questo modo in ogni unita' 
di traduzione sara' utilizzabile quella variabile e sara' possibile 
creare i relativi file oggetto. In una di queste unita' di traduzione (e 
relativo file oggetto) pero' sara' presente anche la dichiarazione vera 
e propria e a questa variabile tutti i file oggetto faranno riferimento 
dopo il linking.
-- 
Devaraja (Xdevaraja87^gmail^c0mX)
Linux Registerd User #338167
http://counter.li.org
Newsgroup: it.comp.lang.c
Titolo: algoritmi in C

Ciao a tutti.
Stavo cercando codice per gli algoritmi base per la gestione di liste
(doppie/semplici) e threads. Qualcosa tipo:
- readers and writers
- buffer circolare
- b+tree
- b*tree
- rb-tree
- h+tree
- problema dei filosofi...
solo che non ho avuto cosi' tanta fortuna....
grazie
alx

alx wrote:
 > Ciao a tutti.
 > Stavo cercando codice per gli algoritmi base per la gestione di >liste...
dai un'occhiata qui. altrimenti il libro "Algoritmi in C" di 
R.Sedgewick, meglio nella prima edizione.
http://odin.ee.uwa.edu.au/~morris/Year2/PLDS210/ds_ToC.html

Newsgroup: it.comp.lang.c
Titolo: Link librerie..

Scusatemi avrei bisogno del vostro aiuto a riguardo della compilazione 
di un programma C.
Il mio problema è che non riesco a linkare delle librerie. Allora 
vediamo il problema:
Il file che devo compilare (add2.c) si trova nella cartella : 
"/Users/nomeutente/"
Le librerie che necessita per essere compilato invece in: 
"/Users/nomeutente/Desktop/standard/". In particolare i file da 
includere (i 2 header file) sono genlib.h e simpio.h.
Per compilare ho utilizzato la seguente scrittura (una volta che mi sono 
posizionato nella cartella di add2.c, cioè /Users/nomeutente/) :
gcc add2.c -I/Users/nomeutente/Desktop/standard/ -lsimpio -lgenlib 
-L/Users/nomeutente/Desktop/standard/
Ora lanciando il comando mi viene fuori il seguente errore:
usr/bin/ld: can't locate file for: -lsimpio.h
collect2: ld returned 1 exit status
Ora, considerando che non ho sbagliato a scrivere i path, come mai non 
riesco a fargli trovare le librerie? Forse sbaglio nella scrittura del 
comando gcc?
Grazie mille per l'aiuto!!!

gcc add2.c -I/Users/nomeutente/Desktop/standard/ -lsimpio -lgenlib 
Assolutamente no.

 Assolutamente no.
Uhm...qualche suggerimento?
Grazie mille cmq.

 di un programma C.
Mi auto quoto per un piccolo aggiornamento...compilando tutti i file di 
questo archivio (dove stanno gli header che dovrei includere) 
praticamente č venuto fuori un file .a, che dopo alcune ricerche ho 
scoperto essere una libreria statica :)))
Ora si pone il problema, sapete dirmi come si linka una libreria statica?
Ovviamente grazie in anticipo!!!


Semplicemente:
    gcc -I/Users/nomeutente/Desktop/standard add2.c
se devi includere gli header files genlib.h e simpio.h
oppure
    gcc -I/Users/nomeutente/Desktop/standard add2.c  \
	-L/Users/nomeutente/Desktop/standard -lsimpio -lgenlib
se devi includere anche le librerie libsimpio.a e libgenlib.a
Ciao
Giovanni
-- 
   A computer is like an air conditioner,
   it stops working when you open Windows.
   Registered Linux user #337974  < 
http://giovanni.homelinux.net/
 >

Uhm...qualche suggerimento?
Oltre quello di studiare un manuale di C, -l va usata con le librerie,
non con i file header, ma se non si sa com'è organizzato il tuo
progetto, non ti si può suggerire nulla.
Newsgroup: it.comp.lang.c
Titolo: variabili "globali"

Salve a tutti.
Sto sviluppando un porgramma suddiviso in diversi header files,
e avrei la necessità di usare la stessa variabile in funzioni poste su files
diversi.
Da quanto ho capito, dovrei dichiarare la variabile come extern,
impostando così il suo scope e la sua "vita" a tutto il programma,
e così ho fatto, ma il compilatore dice ancora che la variabile non è
dichiarata.
dove è bene dichiarare la variabile?
io l'ho fatto in un file "incluso" da tutti gli altri files, ma niente.
Stesso risultato mettendola nel main().
grazie per l'aiuto.
    Stefano

 Stesso risultato mettendola nel main().
Hai fatto
int var;
int main(void)
{
   ...
}
o
int main(void)
{
   int var = 0;
   ...
}
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG


no ho fatto cose più complicate,
ma ho preferito seguire il "keep it simple",
e ho riscritto tutto con i puntatori.
grazie cmq.
bye ;-)

Newsgroup: it.comp.lang.c
Titolo: Funzione di conversione di data/ora

Ragazzi ho un problemino. Come posso fare in maniera semplice a 
convertire una data in formato "secondi dal 1/1/1970" in formato attuale?
Esempio: 1147906822 ==> 17/05/2006, 1:00 (circa :P)
Non avrei voglia di calcolarmi tutto il calendario gregoriano, se ci 
fossero funzioni già fatte da usare in libreria sarebbe meglio, ma non 
ne conosco!
Vi ringrazio.
-- 
Matteo

Mystic ha scritto:

Vai a vedere le funzioni che fanno riferimento a <time.h>
Ciao.