mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c
Titolo: Array bidimensionali e malloc

Scusate il vuoto di memoria ma come si fa ad allocare un numero n di
array bidimensionali ? una dimensione so che e' di 6 elementi, l'altra
la conosco solo a runtime.
Grazie
-- 
Ciao
Fabio

 la conosco solo a runtime.
tipo *array[6];

Newsgroup: it.comp.lang.c
Titolo: compressione (codici di Huffman ed altro)

Sto cercando codice sorgente in C/C++ (standard ANSI) di compressori.
La cosa migliore sarebbe trovare l'implementazione di algoritmi di compressione
basati sui codici di Huffman sia statici che dinamici ma anche qualsiasi altro 
algoritmo di compressione potrebbe andare. 
Se poi vogliamo esagerare mi interessa anche codice sorgente che implementi
algoritmi che uniscano (o anche che riguardino uno dei seguenti argomenti) 
tecniche di compressione, utilizzo di codici rivelatori/correttori
d'errore e/o tecniche di criptaggio (sto veramente esagerando!!).
Il mio indirizzo e-mail preferenziale e' :
gu...@moriscon.sssup.it
Grazie per l'attenzione,
Marco Guidi.
 

 algoritmo di compressione potrebbe andare. 
Un ottimo testo sull'argomento e' il Nelson - The Data Compression
Book; completo di dischetti con i programmi esaminati.  Un posto di
superiore cultura come 
sssup.it
 dovrebbe averlo disponibile ...  I
migliori programmi di compressione sulla piazza sono poi liberamente
distribuibili e cpmpleti di codice sorgente: gzip (in tutti i mirror
GNU, ad esempio 
sunsite.cnlab-switch.ch
 in /mirror/gnu) e bzip2
(
ftp.sunet.se
 in /pub/gnu/egcs/infrastructure).
-- 
Maurizio Loreti                      
http://wwwcdf.pd.infn.it/~loreti/mlo.html
Un. of Padova, Dept. of Physics - Padova, Italy          
lor...@padova.infn.it

Newsgroup: it.comp.lang.c
Titolo: aiuto switch-case-break

Qualcuno saprebbere dirmi come si usano per favore.
Magari con qualche trucchetto.
Sono alle prime armi.
Grazie


"Outside of a dog, a book is man's best friend.
Inside of a dog, it's too dark to read."
			-- Groucho Marx --

 ha scritto nel messaggio
news:slrn8tpckc...@barbone.raffaello.it...


Newsgroup: it.comp.lang.c
Titolo: Leggere file di testo

Ciao ragazzi c'è un modo di leggere la un file di testo
una parola per volta e non ad esempio un certo numero di 
caratteri per volta, come ad esempio con fgets?
Scusate se ho detto una cazzata...
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 caratteri per volta, come ad esempio con fgets?
RTFM! E cerca fscanf()...
-- 
Baci,
Mony

 RTFM!
"Realtime Traffic Flow Measurement"?
C:\>iao Angelo


 "Realtime Traffic Flow Measurement"?
Quasi. Read The Fucking Manual. ;)
Una volta andava molto di moda, su Usenet. Adesso che i newsgroup sono 
diventati degli "help-on-line", ha perso un po' di smalto...
-- 
Baci,
Mony

 diventati degli "help-on-line", ha perso un po' di smalto...
Non ti ho chiesto io di rispondermi, comunque grazie lo stesso per
il suggerimento di fscanf.
Flinstone


 wrote in message
news:aa5u5k$r6n$2...@newsreader.mailgate.org...

Continua ad andare di moda, te lo garantisce uno che quell'acronimo
lo usa molto spesso.
A proposito: RTFM "Read The fscanf Manual", mi sembra appropriato :-)

Newsgroup: it.comp.lang.c
Titolo: aiuto ! comando strlen !

salve
potete darmi una mano su questo coamando ?
if (strcmp(libro.titolo,stupr(stringa),strlen(stringa))==0  { ect ect .....
oltre a coparare titolo e stringa ...cosa fa? insomma a ke serve strlen
messo dentro strcmp ????
grazie tante

messo dentro strcmp ????
E' sbagliato.
strcmp e strlen sono funzioni (attento : non comandi) standard che
accettano, rispettivamente due const char * e un const char *
strupr e' una funzione fuori standard, che pero' dovrebbe convertire
in maiuscolo una stringa.
strcmp confronta stringhe
strlen restituisce la lunghezza di una stringa 
--
Andrea Laforgia (
andrea_...@bigfoot.com
)
---------------------------------------------
#exclude <windows.h>

 wrote in message
8b81os4h2ehol8cab...@4ax.com...


 p;}'
       int strcmp(const char *s1, const char *s2);
       int strncmp(const char *s1, const char *s2, size_t n);
       The  strcmp() function compares the two strings s1 and s2.
       ...
       The strncmp() function is similar, except it only compares
       the first n characters of s1.
[root@fokhouse /root]#
Ciao ciao,
Andrea
-- 
"...Unix, MS-DOS, and Windows NT (also known as the Good, the Bad, and 
 the Ugly)."
(by Matt Welsh)

> >if (strcmp(libro.titolo,stupr(stringa),strlen(stringa))==0
ciao

guarda ke non č sbagliato.a me funziona
Stai confondendo due funzioni : strcmp e strncmp.
Ti ripeto che la prima di queste due funzioni accetta solo DUE
argomenti, indi, il codice che hai postato, NON PUO' funzionare.
--
Kalem

ok è strncmp !!
scusate
come funziona?
riscrivo
if (strncmp(libro.titolo,stupr(stringa),strlen(stringa))==0  { ect ect .....
 aspetto spiegazioni

if (strncmp(libro.titolo,stupr(stringa),strlen(stringa))==0
Secondo me faresti bene ad usare :
if ( strstr( libro.titolo, strupr( stringa ) ) == 
             libro.titolo ) ...
--
Kalem

 wrote in message
2hh5osklc2n0d2viv...@4ax.com...


 wrote :
| if (strncmp(libro.titolo,stupr(stringa),strlen(stringa))==0  { ect ect
.....
se (i primi caratteri del titolo coincidono con la stringa data in tutta la
sua lunghezza) { etc etc

if (strncmp(libro.titolo,stupr(stringa),strlen(stringa))==0  { ect ect .....
vuol dire : Se i primi "strlen(stringa)" caratteri di "libro.titolo"
coincidono con "strupr(stringa)" allora...
ovvero
Se "libro.titolo" inizia con una stringa uguale a "stringa" convertita
in maiuscolo, allora ...
il che equivale a ...
Se "stringa" convertita in maiuscolo e' contenuta in "libro.titolo" e
ne costituisce i primi caratteri, allora....
ovvero 
if ( strstr( libro.titolo, strupr( stringa ) ) == libro.titolo ) ...
Sono sicuro, tuttavia, che questo secondo metodo e' meno efficiente
del primo.
--
Andrea Laforgia (
andrea_...@bigfoot.com
)
-----------------------------------------------------
"There is nothing better for understanding a kangaroo
 than seeing it jump." [D.Grune, C.J.H. Jacobs]
-----------------------------------------------------
Newsgroup: it.comp.lang.c
Titolo: exit e return

Ciao a tutti.
Mi e' sorto questo dubbio: per uscire da un
programma si possono usare sia return che la
funzione exit. Ma c'e' qualche differenza?
Se non c'e', perche' hanno scritto una funzione
quando gia'  c'era un comando, utilizzabile anche
in questo senso?
Grazie.

Ma c'e' qualche differenza?
La return serve per uscire dalla funzione corrente e ritornare alla
funzione chiamante mentre con la exit esci dal programma. Quando la
return e' all'interno della funzione principale (main) allora si
comporta come la exit ma solo perche' in questo caso la "funzione
chiamante" e' il s.o.
Esempio :
int main(void)
  {
  a = fai_qualcosa();
  return 0; // qui esci e ritorna al s.o.
  }
int fai_qualcosa(void)
  {
  if (....)
    {
    exit(1); // esce e ritorna al s.o.
    }
  else
    {
    return 1; //esce e ritorna alla main
    }
  }
ciao

No, per nulla.
Comunque, lo standard afferma che per uscire da main() si puo' usare :
exit( stato ) ;
o 
return stato ;
indifferentemente.
Anche se alcuni sistemi un po' piu' vecchi questa equivalenza non e'
del tutto vera.
--
Andrea Laforgia (
andrea_...@bigfoot.com
)
-----------------------------------------------------
"There is nothing better for understanding a kangaroo
 than seeing it jump." [D.Grune, C.J.H. Jacobs]

Newsgroup: it.comp.lang.c
Titolo: UNHANDLED EXCEPTION !

I finally discovered the reason why the text editor I'm programming in C,
crashed.
I have a structure like this:
-----------------------------------------------------------
typedef struct TextBuffer *TextBufferPtr;
typedef struct TextBuffer {
char row[1023];
int row_lenght;
TextBufferPtr NextRow;
TextBufferPtr PreaviousRow;
                                     };
typedef struct Document {
char * document_name;
int document_size;
TextBufferPtr TextPrt;
                                    };
------------------------------------------------------------
The program return an UNHANDLED EXCEPTION error when I try to execute in the
main() function this istruction:
main()
{
int key;
int index=0;
Document Text;
key=getkey();                                   /* the getkey function
returns the character pressed on the keyboard */
Text.TextPtr->row[index]=key;           /* this instruction CRASHES the
program ! */
}
So I resolved that the problem is how to write int the char[1023] field of
each node without crashing the program. Yes... but... HOW ?! <:-?
I also tryed to write a WriteBuffer() function which contains itself a "
static int row_index " which increases at every call of the function.
main ()
{
int key;
TextBufferPtr TextPointer;
key=getkey();
WriteBuffer (key, TextPointer);
}
void WriteBuffer (int key, TextBufferPtr TextPointer)
{
static int row_index=0;
TextBufferPtr current=TextPointer;
current->row[row_index]=key;
row_index++;
}
In this way the program  doesn't crash ! Why ?!?!
Thank a lot for you great support !!!!
Roberto.

 Roberto.
Ciao Paolo
-----------== Posted via Deja News, The Discussion Network ==----------
http://www.dejanews.com/
       Search, Read, Discuss, or Start Your Own
Newsgroup: it.comp.lang.c
Titolo: Programmazione emulatore

Come si programma un emulatore di un qualsiasi microprocessore? cioe, che
regole si seguono, dove si trovano le info dell'hardware dei vari
microprocessori, e soprattutto, in rete esistono sorgenti (magari in
italiano) di emulatori per microchip mooooooooooooooolto semplici giusto per
capire il funzionamento?
Grazie, Dome



Cerca i sorgenti di xcopilot, un  emulatore di Palm (Motorola 68328) per
UNIX. Oppure cerca copilot, che dovrebbe essere la versione per Windows.
-- 
                                                                     __
 __                                                              _  ///
| _        Student in Computer Science, Swiss Federal Institute  \\///
|__|iambo      of Technology - mailto:
ggia...@iiic.ethz.ch
       \X/

UNIX. Oppure cerca copilot, che dovrebbe essere la versione per Windows.
Nella mia homepage (sezione demo) puoi trovare i sorgenti
di un emulatore che ho scritto per il micro 6502 (CPU a 8 bit).
E' presente anche un emulatore di Apple ][ (un computer
degli anni 80) molto semplificato (come I/O gestisce solo
la tastiera e il video in modalita' testo).
L'emulatore CPU e' scritto in assembler e usa callback per
l'implementazione dell'I/O (il 6502 usa memory mapped I/O invece
di istruzioni dedicate).
HTH
Andrea
--
Andrea Griffini, Programmer
http://www.netservers.com/~agriff

Newsgroup: it.comp.lang.c
Titolo: [?]Devo salvare su file ...

-- 
rober...@inwind.it
Salve a tutti , vorrei un consiglio , devo salvare su un file  due tipi di
dato , un intero e una stringa , in modo formattato .cosa posso usare
fputs può andare bene ?(direte voi : prova) va beh , ma datemi qualche
consiglio .
Quando uso fputs , la stringa viene salvata con le virgolette , come posso
fare per
evitare questo?
Grazie 
Ciao Roberto 


The majority of the stupid is invincible and guaranteed for all time.
The terror of their tyranny, however, is alleviated by their lack of
consistency.
                -- Albert Einstein

fare per evitare questo?
Non e' vero, controlla meglio.
p.s.: evita di scrivere la firma in alto preceduta da -- perche' il
simbolo in questione indica il troncamento, quando c'e' il quoting,
per cui ti conviene spostarla in fondo.
--
Andrea Laforgia (ICQ 87230455)
http://www.geocities.com/AndreaLaforgia
"ci sono tre tipi di persone nel mondo : quelli che
 sono bravi in matematica e quelli che non lo sono."
Newsgroup: it.comp.lang.c
Titolo: strutture o unioni?

Le unioni a differenza delle strutture consentono una gestione migliore 
della memoria... perchè non usare sempre le strutture?
Sicuramente non ho capito, bene, qualche cosa...
Grazie per l'aiuto.

 Sicuramente non ho capito, bene, qualche cosa...
nella union puoi "fare riferimento" solo a un elemento che 
la compone. la union è grande come il più grande dei suoi 
membri.
compila questo esempio:
----------------------------------------
#include <stdio.h>
struct s {
    char c;
    int i;
};
union u {
    char c;
    int i;
};
int main () {
    struct s a;
    union u b;
    a.c='a';
    a.i=123;
    printf("%d %c %d\n",sizeof(a),a.c,a.i);
    b.c='a';
    b.i=123;
    printf("%d %c %d",sizeof(b),b.c,b.i);
    return 0;
}
----------------------------------------
vedrai che il suo output è:
8 a 123
4 { 123
dove 8 nel primo caso è la somma delle dimensioni dei membri 
della struct s (il char sembra occupare 4 byte perché è 
generalmente allineato a una dword).
noterai che nel secondo caso b.c non è 'a' ma '{' che è 
rappresentato dal codice ascii 123: proprio quello che è 
stato dato ad b.i e siccome nella union i membri si 
"sovrappongono" noti che cambiarne uno ha influenza sull'altro.
ciao.

 della memoria... perchè non usare sempre le strutture?
Non "migliore", ma diversa.
Le union servono, normalmente, a consentire l'accesso alla stessa 
informazione in modi diversi.  Uno scopo del tutto differente da quello 
delle strutture.  Un esempio:
#include <stdio.h>
typedef struct { long Value; } LongStruct;
typedef struct { char b0,b1,b2,b3; } ByteStruct;
typedef union {
         LongStruct LS;
         ByteStruct BS;
} UNION_LONG;
int main(int argc, char *argv[])
{
     UNION_LONG l;
     l.LS.Value = 0x12345678;
     printf("%x (%x %x %x %x)\n",
            l.LS.Value,
            l.BS.b0,
            l.BS.b1,
            l.BS.b2,
            l.BS.b3);
     return 0;
}

Andrea Laforgia ha scritto:

Quindi, possiamo intendere l'unione come un raggruppamento di più strutture?

 strutture?
No, il mio era solo un esempio.  Una union può contenere qualsiasi cosa.

Andrea Laforgia ha scritto:

Ok!
Grazie a te e cane per l'aiuto.

Newsgroup: it.comp.lang.c
Titolo: libz e libgcrypt

Salve! Sto implementando un programma che legge da file ed esegue
compressione e/o cifratura dei dati letti...se eseguo una solla delle
due operazioni possibili funziona..quando invece eseguo la cifratura
dopo aver compresso il file mi da errore...le librerie che uso sono
libz e libgcrypt....qualcuno può suggerirmi qualcosa??
Pier


Il primo suggerimento e': ricordati sempre di indicare CHE errore ti da, 
quando te lo da, eccetera, se vuoi davvero che la gente riesca ad 
aiutarti! :)
ciao
Giacomo

Hai assolutamente ragione...dunque la funzione che mi da errore è
lafunzione di cifratura e l'errore  riportato è "Invalid
argument"...facendo delle prove ho però capito che l'errore sta nell
array di input..
Giacomo Degli Esposti ha scritto:

Newsgroup: it.comp.lang.c
Titolo: porta parallela: l'indirizzo?

come si fa a ricavare l'indirizzo della porta ( ad esempio LPT1 => &H378) ?
(se interessa l'OS a me basta per win)
grazie

 (se interessa l'OS a me basta per win)
Per DOS casomai, guarda all'indirizzo 0040:0000 .
In windows credo che non ti lasci indirizzare direttamente una porta. Devi
usare delle API che fanno il loro sporco per te.
--
+--------------------------------------------+
| Rilevato Virus nel file c:\windows\
win.com
 |
|  ** Operatore alla tastiera non valido **  |
|  Sostituire e premere un tasto qualsiasi.  |
+--------------------------------------------+
       -=[]=- 
ian...@libero.it
 -=[]=-

 ha scritto nel messaggio
news:9fkots$17p$1...@fe1.cs.interbusiness.it...


 ha scritto nel messaggio
news:mfpT6.5725$7F4.2...@news.infostrada.it...

Newsgroup: it.comp.lang.c
Titolo: Funzione STAMPA

Buongiorno Ragazzi!
Non sono riuscito a trovare sul Deitel una funzione che mi permetta di
inviare alla stampante un file contenente dei dati di persone.
Forse a ben pensarci mi servirebbe una funzione che invii una lista alla
stampante.
Mi spiego:
Semplicemente il programma ha questa struttur:
*Appare un menu con una serie di scelte; tra le scelte ovviamente c'e' la
possibilità di stampare sto cacchio di file;
Ad esempio:
1.Per inserire la data di nascita;
2.Per Stampare il "database" :D
3.Uscita (-->il problema è che il file viene salvato all'uscita del
programma e non per ogni nuovo inserimento.)
Non state a guardare la portabilità, sarebbe uno spreco per quello che sto
facendo :-PP
Io mi alleno col DEV C/C++ e uso WinXp (ancora per poco...).
Ringrazio tutti!
Shad

 inviare alla stampante un file contenente dei dati di persone.
Hai provato ad aprire il file PRN in output e a scriverci su?
EMG
--
EMAG Software Homepage:     
http://www.emagsoftware.it
The EMG's ZX-Spectrum Page: 
http://www.emagsoftware.it/spectrum
The Best of Spectrum Games: 
http://www.emagsoftware.it/tbosg

 EMG
Ehm.... non ho provato :-)





 non �che mi fareste vedere una funzione tipo :_(
Se definito, PRN e' un file speciale associato alla stampante e ci scrivi 
come su di un normale file. So che non e' standard, ma mi pare sia definito 
sotto DOS (forse ereditato anche dai programmi per Windows... ma visto che 
usi Windows dovrebbe bastarti).
Altrimenti devi vedere quali soluzioni ti mette a disposizione il sistema 
operativo per la stampa.
-- 
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."

 Mox
Grazie Mox!!
ora ho capito! ci proverò!
se intanto vi viene in mente altro fatemelo sapere ;-)
Thaaanks!
Shad

 non č che mi fareste vedere una funzione tipo :_(
Eccola (funziona solo sotto MS-DOS e, forse, Windows):
#include <stdio.h>
int main()
{
    FILE *Printer = fopen( "PRN", "w" );
    fprintf( Printer, "Prova di stampa\n" );
    fputc( 12, Printer );     // End of page
    fclose( Printer );


 > non è che mi fareste vedere una funzione tipo :_(


PURTROPPO... e' arrivata la smentita...
....mi serve qualcosa di portabile :_(((
Uffaaaaaaaaaaaaaa!!!!
Shad
P.s. HEEEEEEEEEEEEELPPPPPP!
"Shadow" <simoneNOSPA...@virgilio.it.NONVALIDO> ha scritto nel
messaggio news:85naa.24816$pG1.6...@news1.tin.it...


 ....mi serve qualcosa di portabile :_(((
Purtroppo non si può stampare in modo portabile. Cambia almeno il nome
del dispositivo (ma questo credo sia accettabile, no?).

Newsgroup: it.comp.lang.c
Titolo: Accesso a file DBF

Salve,
ho bisogno di accedere a file database in formato DBF usando il linguaggio C
in standard ANSI. Come posso fare?
Grazie a tutti

 in standard ANSI. Come posso fare?
Esistono (o esistevano) delle librerie per farlo, tipo le Codebase.
EMG

Newsgroup: it.comp.lang.c
Titolo: Performance programmi compilati con -g

Salve a tutti, stavo cercando informazioni o tabelle comparative 
relative al degrado di performance di un programma compilato con il 
debugger attivato e lo stesso programma senza debugger, e magari anche 
quanto ci si puo' guadagnare in performance utilizzando gli 
ottimizzatori in fase di compilazione. Il tutto in ambiente unix, per 
la precisione su OSF1.
Ho cercato su internet ... ma non sono riuscito a restringere la 
ricerca in maniera adeguata.
Grazie
Newsgroup: it.comp.lang.c
Titolo: Processi Child, e InterProcess Communications...

Problema: devo poter inviare, da un programma, chiamiamolo parent, dei dati
a un'altro eseguibile, chiamiamolo child, e ricevere l'output di quel programma.
Ovvero, il parent deve diventare stdin e stdout per il child.
Penso che si faccia con le pipe e con fork. Ma non ho idea di come fare.
Potreste inviarmi un esempio pratico?
Thanks very much.
Pietro Femmino'

Io ho letto la "Linux Programming Guide" e per un buon 60% parla di IPC tra
cui anche il tuo caso mi pare.
Spero di esserti stato d' aiuto
-- 
  +   SSS H H AAA RRR  K K  Life is great . . . 
+++++ SSS HHH A A R R  KK   When you know how to live it !
  +     S H H AAA RRR  K K  Life is a bitch . . .
  +   SSS H H A A R  R K  K And then you die !

Ovvero, il parent deve diventare stdin e stdout per il child.
prova a dare un'occhiata alle funzioni popen/pclose, non dovrebbe
esserci bisogno di nessuna fork, ma non ho mai provato.
Buon Natale a tutti
[ranger, email: 
ran...@queen.it
]

 non ho idea di come fare.  Potreste inviarmi un esempio pratico?
Non sono un esperto, ma sto studiando l'argomento, per cui ci provo!
Secondo me devi creare due pipe: uno per la comunicazione parent->child,
e uno per la comunicazione child->parent.  Ecco un programmino che
fa questo:
main()
{
   int parent_to_child[2], child_to_parent[2];
   char s[100];
   int pid, n;
   if(pipe(parent_to_child)!=0)  perror("pipe()");
   if(pipe(child_to_parent)!=0)  perror("pipe()");
   pid = fork();
   if(pid>0){ /*parent*/
      close(parent_to_child[0]);
      close(child_to_parent[1]);
      strcpy(s, "saluti da parent!");
      write(parent_to_child[1], s, strlen(s));
      close(parent_to_child[1]);
      while((n=read(child_to_parent[0], s, 99)) > 0){
         s[n] = 0;
         printf("Parent: ho ricevuto `%s'\n", s);
      }
      exit(0);
   }else if(pid==0){ /*child*/
      close(parent_to_child[1]);
      close(child_to_parent[0]);
      strcpy(s, "saluti da child!");
      write(child_to_parent[1], s, strlen(s));
      close(child_to_parent[1]);
      while((n=read(parent_to_child[0], s, 99)) > 0){
         s[n] = 0;
         printf("Child: ho ricevuto `%s'\n", s);
      }
      exit(0);
   }else  perror("fork()");
}
Se vuoi che il processo child veda il parent come stdin/out, il trucco e'
usare dup2().
Attenzione che read() e' bloccante, per cui se vuoi che la comunicazione
sia asincrona dovrai usare select(). Anche write() puo' essere bloccante
quando il pipe e' pieno.
Ciao,
- Salsi
Newsgroup: it.comp.lang.c
Titolo: obj e exe

Ciao, rifaccio la domanda che avevo postato prima con un altro nick per
sbaglio. Adesso ho capito esattamente quello che mi interessa e posso fare
una richiesta più mirata.
Il file oggetto dovrebbe contenere le istruzioni in linguaggio macchina
corrispondenti al codice sorgente (correggetemi se sbaglio), quindi dovrebbe
essere già funzionale e completo. Cosa fa allora il linker?
per favore non rispondetemi di cercare su google o di leggere oltre la prima
pagina dato che se faccio queste domande è perchè non trovo una risposta
completa.
Un ultima domanda... se ci sono tanti file .c, questi diventano tanti file
.o (o .obj), e poi il linker li collega in un unico eseguibile?


Metti che nel modulo "pippo.c" uso la funzione foo(), definita nel 
modulo "pluto.c". Quando viene generato "pippo.o" da "pippo.c", nel 
punto dove dovrebbe essere messo l'indirizzo della funzione foo, il 
compilatore non sa che metterci, dato che non sa ancora dove stara' in 
memoria la funzione foo. Ragionamento simile con le variabili (globali). 
Quindi, il compilatore lascia un posto vuoto, e da qualche parte scrive 
"all'istruzione XXX c'e' un riferimento non risolto per la funzione 
foo". Il linker, quando mette tutto assieme per costruire un eseguibile, 
risolve anche tutti questi riferimenti non risolti.
-- 
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

 risolve anche tutti questi riferimenti non risolti.
Quindi se ho capito bene, fa lo stesso anche con le varie funzioni printf,
scanf, ecc...
Ma come fa il linker a sapere in quali file trovare il codice oggetto
relativo alle funzioni utilizzate, in particolare quelle che non sono state
scritte da me come per esempio printf?


Quelle funzioni si troveranno a loro volta in una qualche libreria, che 
il linker linka automaticamente (ogni libreria/file oggetto, ovviamente, 
ha una tabella dei simboli che sono definiti al suo interno).


Newsgroup: it.comp.lang.c
Titolo: Direttiva #pragma

Salve a tutti. Qualcuno di voi mi spiegherebbe a cosa serve la direttiva
#pragma e come usarla con lcc?

 ha scritto nel messaggio
news:n_Un9.55661$e31.1...@twister2.libero.it...


#pragma e come usarla con lcc?
#pragma serve ad attivare alcune particolari opzioni non-standard del 
compilatore. Per esempio, col 
vs.net
 mi sembra esista #pragma once o 
qualcosa di simile per includere solo una volta un header... qualcosa tipo 
#ifndef HEADER_H #define HEADER_H ... #endif
Ma ripeto, non è standard, quindi cambia da compilatore a compilatore. 
Perciò di più non so che dirti.
-- 
Andrea Bergia - studente 	  Linux Registred User #281550
Per favore non mandatemi allegati in Word o PowerPoint.
Si veda 
http://www.fsf.org/philosophy/no-word-attachments.html

e come usarla con lcc?
Bho, hai guardato sulla guida?
-- 
Marco Barisione (ICQ 84277092)
Newsgroup: it.comp.lang.c
Titolo: [REQ] Domanda sulla funzione kbhit()...

Ciao a tutti, sto provando a fare una specie di snake
in C.
Come lo snake classico, vorrei fare in modo che se il
giocatore non preme niente entro, mettiamo, 500ms,
il serpente fa "un passo" avanti nella direzione in cui
stava gią muovendosi.
Vorrei implementare questa cosa, qualcuno mi ha
consigliato kbhit(), solo che la mia funzione dovrebbe
attendere quei 500ms prima di dire se la pressione del tasto
č avvenuta o meno...
inoltre, come faccio poi a memorizzare quale tasto č stato premuto?
Con getch() č facile, con kbhit() penso non si possa proprio...
come faccio ad utilizzarle entrambe???
grazie
--
--
,Blob{..DX21..}
visitate il mio sito:
http://xoomer.virgilio.it/blob.dx21/
----
"The voice is still clear in my head;
it's the last word in monologue....
close-up, interior, night."
Peter Hammill - Incoherence [2004]


Piů o meno cosě:
main()
{
    while(1)
    {
        if(kbhit())
        {
            if((ch = getch()) == ESC)
                break;
            MiSposto(ch);
            ResetTempo();
        }
        else
        {
            if(QuantoTempo(500))
                MiSposto(ch);
        }
    }
}
Un saluto.
Maxime

Newsgroup: it.comp.lang.c
Titolo: errore per variabile union REGS

Ciao a tutti!
Da qualche tempo mi sono immerso nel fantastico mondo del C cercando di
apprenderne almeno le basi.
Sto seguendo un corso (datato 1990, purtroppo, ma a mio avviso molto ben
fatto) che mi ha aiutato a capire quelli che per me erano i "passi cruciali"
del C, come ad esempio i puntatori.
Andando avanti, viene mostrato addirittura come programmare il BIOS usando
le variabili union REGS, ma purtroppo dichiarando questo tipo di variabile
ottengo sempre un errore dal compilatore, che in pratica mi dice "dimensione
sconosciuta della variabile" (o qualcosa del genere insomma).
Come mai?
Qualcuno sa darmi una risposta?
Grazie a tutti e buon lavoro

 sconosciuta della variabile" (o qualcosa del genere insomma).
Che compilatore usi? E poi, hai incluso il modulo in cui è dichiarata 
l'unione union REGS?
-- 
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

 l'unione union REGS?
Uso Dev C++.
Per modulo intendi il file dos.h vero?

 Per modulo intendi il file dos.h vero?
Spesso il modulo cambia a seconda del compilatore.
Hai provato a includere bios.h?

Newsgroup: it.comp.lang.c
Titolo: Problema di 5 righe.

Il problema č: come mai mi chiede solo di riempire
la stringa e non mi stampa neppure il carattere 'b'
che ho inserito nella dichiarazione ?
#include <stdio.h>
#include <stdlib.h>
main()
{
    char c='b',a[5];
    printf("\n\n");
    scanf("%s",a);
    scanf("%c",&c);
    printf("\n %s -- %c",a,c);
}
Un ringarziamento a tutti coloro che mi risponderanno.
Grazie By Carlo

 Il problema è: come mai mi chiede solo di riempire

'b' non telo stampa perchè prima di farlo stampare modifichi il contenuto
della variabile c con la scanf
e precisamente c dopo la scanf conterrà il carattere invio visto che rimane
nel buffer dello stdin...
la stringa tela stampa o no???

}
-- 
Andrea Laforgia (
walkie...@libero.it
)
"Usenet is a strange place" [Dennis Ritchie]

 ha scritto nel messaggio
news:f8d48.23935$Rv3.8...@news2.tin.it...


 Si ma come posso fare per risolvere il problema?
Dopo ogni scanf() e' bene (di norma) mettere un "while(getchar()!='\n');"
perche' quando si fa uno scanf questo non legge tutto cio' che c'e' nel
buffer di input (cioe' quello che hai scritto) ma solo quello che gli si
indica. In pratica, tipicamente non legge l'invio, che la maggior parte
delle volte viene letto nello scanf successivo.
Ciao,
Zeppe

delle volte viene letto nello scanf successivo.
Una piccola aggiunta: tutto questo non vale solo per la scanf, ma per
tutte le funzioni che leggono da stdin senza arrivare alla newline.
Mox
Newsgroup: it.comp.lang.c
Titolo: [OT] byte to double

Salve,
e' in parte un ot a cui, spero, giunga una risposta.
Tramite udp mi arrivano 8 byte che compongono 1 double.
Come posso ricostruire il double dai byte?
Avete una guida da indicarmi?
grazie

 Come posso ricostruire il double dai byte?
Immagino che lo standard adoperato per i double sia lo stesso da un
endpoint all'altro, altrimenti c'è poco da ricostruire ;-)... uno degli
standard ormai affermati è l'IEEE 754 e immagino che sia questo che viene
adottato.
Per ricostruire gli 8 byte del double, devi sapere in che ordine ti
arrivano.
Puoi trattare il double da costruire mediante un puntatore a byte e
piazzare ciascuno degli 8 byte che ti arriva nel posto giusto:
#include <stdio.h>
typedef unsigned char byte_t;
void build_double(double *pd, byte_t *p)
{
     int i=0;
     byte_t *pb=(byte_t*)pd;
     for (i=0; i<8; i++) 
       pb[i] = p[i];
}
int main(int argc, char *argv[])
{
    double a=1122334455667788.0, b=0;
    build_double(&b, (byte_t*)&a);
    printf("%lf\n", b);
    return 0;
}
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 Tramite udp mi arrivano 8 byte che compongono 1 double.
Dipende da come ti vengono spediti e dalla codifica del
double sul sistema di partenza e di quello di arrivo.
Se la codifica e' la stessa e i byte ti vengono spediti
"network order" (little endian se non erro) allora basta
invertire i byte se il sistema di arrivo e' un big endian
o non fare niente se e' un liltte endian.
Se la codifica del double non e' la stessa, ti conviene
farti spedire una stringa.
Tutto questo dall'alto della mia ignoranza. Per gli
interi esistono delle funzioni che fanno questo in
maniera automatica (ntohs, ntohl htons e htonl) per
i double non ne conosco.
HTH
C:\>iao
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 semplice capire come fare in C# :)
Il network byte order e` big endian, ma devi essere sicuro che l'altro
capo della comunicazione lo segua. Se l'intero lavoro e` pensato per
girare sotto Windows, allora c'e` la possibilita` che chi ha sviluppato
l'altro capo della comunicazione invii i dati in little endian.
Saluti,
Marco
-- 
To email me, remove the no_ and _spam from my address.

 semplice capire come fare in C# :)
Da questo punto di vista non dovrebbero esserci molte differenze.


Ma come faccio a ricomporre il double dai byte e viceversa?

 Ma come faccio a ricomporre il double dai byte e viceversa?
Te l'ho spiegato nel mio messaggio e te lo ripeto:
#include <stdio.h>
typedef unsigned char byte_t;
int main(int argc, char *argv[])
{
    double d=3.1415927, d2=0.0;
    byte_t *pb=(byte_t*)&d;
    byte_t *pb2=(byte_t*)&d2;
    int i;
 
    for (i=0; i<8; i++) {
      printf("b[%d]=%.2x\n", i, pb[i]);
      pb2[i] = pb[i];
    }
 
    printf("d2=%f\n", d2);


 
Ho gia risposto in un altro post, in ogni caso:
    Supponendo num l'array con gli otto byte:
    double NUM = *((double *)&num[0]);

Newsgroup: it.comp.lang.c
Titolo: Programmare in C sia per win che per linux

Sto seguendo un corso in C su windows (usiamo dev-c++) ma io sono un
utente linux, per cui vorrei distribuire i miei programmi sia per
windows che per linux, scrivendo ovviamente un unico codice sorgente.
Da quanto ho capito il comando getch è valido solo per windows: con
cosa lo posso sostituire? Anche se poi bisogna premere 'enter' e non
un tasto qualsiasi, getchar potrebbe andare bene?
Grazie in anticipo :)
-- 
Tilt
icq: 30789071 - yim: charponthe
http://charsugo.too.it

 Lascia stare!
No, invece fa bene. Il linguaggio è lo stesso e ci sono molte librerie 
cross-platform. Dal punto di vista didattico, se lo scopo di un corso è 
insegnare il C e si propone codice che gira solo sotto Windows, direi 
che il corso ha fallito il suo compito.
E.

 un tasto qualsiasi, getchar potrebbe andare bene?
Sě.
E.

 Marco
ciao!

 che il corso ha fallito il suo compito.
Appoggio.
-- 
-riko

Newsgroup: it.comp.lang.c
Titolo: FAQ 3 - cancellare il contenuto dello schermo

L'esempio "portabile" non č certo il max dell'efficienza, ma č stato postato
e io l'ho riportato. sta a voi....
-----------------------------------------------------
Come faccio a cancellare il contenuto dello schermo ?
Il C standard non possiede nessuna funzione specifica per questo. Si puņ
usare una soluzione del tipo:
#define NUMRIGHE 25
int i;
for (i=0;i<NUMRIGHE;i++)
   printf("\n");
oppure si utilizzano funzioni non standard, dipendenti dall'implementazione
come:
sotto DOS:    clrscr(); definita in conio.h (compilatori Borland)
sotto UNIX/LINUX:  (manca) definita in curses.h (man ncurses per dettagli)
sotto MAC OS:
In alternativa si fa una chiamata al sistema operativo con la funzione
system() definita in stdlib.h:
sotto DOS:  system("cls");
sotto UNIX/LINUX:  system("clear");
sotto MAC OS:
--
Marco Coppo - University Of Sheffield
Flat 12 Room 6 - Broad Lane Court
160 Broad Lane - Sheffield S1 4BU
South Yorkshire - UK

sotto MAC OS: 
Non so se con MAC abbia senso parlare di pulizia dello schermo, o si'
? Non conosco la macchina...
--
Andrea Laforgia (
andrea_...@bigfoot.com
)
---------------------------------------------

e DJGPP
Ma io non la posso mettere nel conio.h dell'lcc, l'inizializzazione, per
poterla usare?
Ciao,
Zeppe

sotto MAC OS:
Questa mi sembra la soluzione migliore!!
Il Ghenio
-----
Proteggeremo il mondo della devastazione!
Uniremo tutti i popoli nella nostra nazione!
Denunceremo i mali della verità e dell'amore,
Estenderemo il nostro potere fino alle stelle.
Jesse!
James!
Team Rocket pronto a partire alla velocità della luce.
Arrendetevi subito oppure preparatevi a combattere.
Miaaaoooo, proprio cosi'!
(Team Rocket)
-----
Newsgroup: it.comp.lang.c
Titolo: DOS e Windows

Mantova, 08.10.02
Salve a tutto il NG.
Mi trovo nella necessità di dover scrivere un'applicazione in ambiente DOS
che sia in grado di interagire con un'applicazione Windows (terra-terra
l'app DOS prepara delle righe per una stampa che devono essere visualizzate
da un'app Win ... magari con una ListBox ...).
Io uso il C della Borland.
Il problema non è tanto lanciare l'applicazione Win da DOS (fattibile
tranquillamente con le funzioni Spanw...) quanto le comunicazioni fra le
due: uso un file per il passaggio di dati ed uno per la memorizzazione dello
stato delle applicazioni (StampaInCorso, StampaFinita, StampaAbortita, etc).
L'ideale, come potete immaginare, sarebbe poter comunicare tramite messaggi
in modo da non dover usar eil file di stato nel verso DOS -> Windows  ...
però non oso fare tanto.
Al momento mi accontento di sapere se esiste il modo di "uccidere" (Kill o
similari) il processo Win da DOS tenendo conto che, in ogni caso, è sempre
il processo DOS a chiamare il processo Win.
Spero di non avervi fatto troppa confuzione.
Grazie dell'aiuto (spero copioso .... :-)))))))
Andrea Foresti

 essere visualizzate da un'app Win ... magari con una ListBox ...).
Dovendo programmare DOS, non hai a disposizione (per quell'ambiente) delle 
native per comunicare con gli altri processi.
Se proprio *deve* essere un programma DOS, non hai scelta che comunicare 
tramite uno o più file su disco.
Se per DOS intendevi invece una applicazione console, il discorso cambia.
-- 
In silenzio anche un idiota sembra intelligente. Ma non c'è problema,
l'idiota vuol sempre dire la sua.


*** NON E' UN'APPLICAZIONE CONSOLEEEEE ***
Speravo si potesse scavalcare l'uso del file.
Va bene. Grazie della risposta.
Ciao
Andrea
Newsgroup: it.comp.lang.c
Titolo: Restituire il totale di elementi di un tipo enum

Esiste in C una funzione che restituisca il numero degli elementi presenti
in un tipo enum?
Per esempio, se ho
enum Colore {Rosso, Verde, Giallo, Blu}
vorrei che in qualche modo mi fosse restituito automaticamente 4, in modo da
non dover aggiornare continuamente a mano il totale se dovessi aggiungere o
togliere un colore.
Grazie
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

   
enum Colore {Rosso, Verde, Giallo, Blu, maxColori}
e poi usi maxColori ...........
B.

nicolademarchi ha scritto:

Ciao. Si usa far così:
enum Colore {Rosso, Verde, Giallo, Blu, nColori}
printf("Colori: %d", nColori);
Un saluto.
dMaxime.

brix99luftballons ha scritto:

Ops, scusa. Non avevo ancora il tuo post.


L'idea è molto buona, però un trucco del genere non mi va bene e vi spiego
perchè.
Dopo la mia enum ho una scanf che riceve un numero corrispondente al colore
scelto. Siccome il programma poi si comporta in modi diversi a seconda della
scelta fatta, ho la necessità che il numero totale dei colori sia
effettivamente quello dei colori disponibili, senza che fra essi vi sia
quella specie di variabile-fantasma del totale.


   
Spiegati meglio: non si capisce .. che significa ?
Il numero totale di colori effetivi sarà sempre pari a maxColori,
le enum NON sono variabili ma valori costanti :
maxColori è semplicemente un valore numerico costante che vale...
ultimo_colore+1 ....
Al limite quello che devi fare  è una cosa del genere:
if (colore < maxColori)
{
       scanf(.....................)
}
else
{
   /* colore non gestito!!! */
}
B.

 quella specie di variabile-fantasma del totale.
Ciao, sinceramente, non capisco la necessità ma in ogni caso, mi duole 
dirti che in C, se vuoi usare le enum, (che io sappia) non hai 
alternative diverse da quella che ti abbiamo suggerito. Anzi, inoltre, 
ciò che ti abbiamo suggerito non funzionerebbe se tu inizializzassi 
arbitrariamente uno dei valori dell'enum.
Saluti.
dMaxime.

 > effettivamente quello dei colori disponibili, senza che fra essi vi sia
 > quella specie di variabile-fantasma del totale.
Ciao, sinceramente, non capisco la necessità ma in ogni caso, mi duole 


Newsgroup: it.comp.lang.c
Titolo: Trasmissione seriale

Salve a tutti,
vorrei sapere quali sono le librerie standard per I/O di dati da una
porta seriale del PC
(non ha importanza se DOS o Windows), e se posso trovare della
documentazione on-line sulle funzioni da adoperare.
Grazie dell'aiuto,
Gabriele Lannino

 porta seriale del PC
Lo standard non copre questo tipo di problematiche specifiche di un dato
tipo di macchine.
EMG

se ti basta il DOS
studiati le chiamate a bios (interrupt software)
sta tutto l'ě da 15 anni
;c)
Newsgroup: it.comp.lang.c
Titolo: ror & rol?!?

come posso agire su un byte eseguendo un ror o rol, e ritrovarmi il
risultato in un __int8 (variabile a 8 bit).
TNK

Muttley wrote:

ritiro la domanda...



Newsgroup: it.comp.lang.c
Titolo: Programmazione Controllore sistema dinamico

Salve a tutti,
per la tesi di laurea mi trovo a dover implementare un controllore
real-time (a chi può dire qualcosa, un MPC) in C.
Allora, ho i seguenti problemi:
- le mie conoscenze di C sono veramente minime... ma minime!!!!
- non ho mai implementato algoritmi numerici
Vi chiedo, se potete consigliarmi un testo abbastanza conciso (italiano
o inglese) dove poter studiare il C direttamente orientato a questo
tipo di problematiche e magari qualche libreria che potrà tornarmi
utile.
Grazie a tutti coloro che vorranno darmi una semplice indicazione o
consiglio su come muovermi.
P.S. (per darvi un idea), devo fare operazioni su matrici, integrazioni
numeriche xpunto=Ax+Bu (dove A e B sono marici).... grazie ancora.

 
"numerical recipes in C" e' un punto di partenza per questi algoritmi ed 
ingenere e' disponibile nelle biblioteche universitarie, in seconda 
battuta "netlib" e' un archivio di sottoprogrammi numerici disponibile 
in rete
cerca anche per BLAS, LINPACK, LAPACK, originariamente erano in fortran 
ma dovrebbero esistere i port in C ( prova tra i sorgenti di octave e 
scilab )
verifica inoltre se per caso ci fossero delle librerie ottimizzate per 
il tuo target sopratutto per la gestione delle matrici


 scilab )
Grazie infinite, mi metto subito alla ricerca

 in rete
Il libro si trova anche in rete...
http://www.nrbook.com/a/bookcpdf.html
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 ha scritto nel messaggio 
news:1163583053....@h48g2000cwc.googlegroups.com...
Salve a tutti,
per la tesi di laurea mi trovo a dover implementare un controllore
real-time (a chi può dire qualcosa, un MPC) in C.
Allora, ho i seguenti problemi:
- le mie conoscenze di C sono veramente minime... ma minime!!!!
che facolta' è? immagino informatica o simile, che linguaggi studi li, 
strano che non hai fatto il C 

 strano che non hai fatto il C
Studio automazione (teoria del controllo), uso praticamente solo il
matlab, maple... ovviamente un minimo di c++ l'abbiamo fatto, ma non
abbiamo mai avuto modo di usarlo :-(
Newsgroup: it.comp.lang.c
Titolo: stampa grafica

Salve a tutti,
    Chi di voi sa dirmi com'e' possibile stampare immagini grafiche da
un programma C? Piu' precisamente come posso stampare una schermata
grafica (realizzata utilizzando le funzioni di plotting di un qualsiasi
compilatore C) su stampante?
Ringraziando anticipatamente chi mi aiutera' vi saluto,
    Maurizio

 di un qualsiasi compilatore C) su stampante?
  Detto cosi`, non e` che sia molto chiaro...
  Dovresti, per lo meno, specificare in che ambiente programmi. Sotto MS
Windows, per esempio, la stampante e` vista come un display qualsiasi:
puoi direttamente disegnare sul suo GD. Sotto MS DOS, invece, c'e` un
interrupt che, richiamato, effettua il dumping del contenuto dello
schermo su stampante (lo stesso risultato che si ottiene premento il
tasto "PrtScr" o "Stamp"). Eccetera...
	Alla prossima,
		Marco

Newsgroup: it.comp.lang.c
Titolo: Vi interessa MBR, FAT e altro sull'HD ....

Ciao,
    ho raccolto tutte le informazioni che ho trovato su come sono
organizzate le informazioni su un HD a partire dal Master Boot Record fino
all'organizzazione dei file e delle directory se interessa ..
la mia home page è:
http://www.geocities.com/SiliconValley/Byte/6586/
mentre il documento di cui parlo è:
http://www.geocities.com/SiliconValley/Byte/6586/filesys
ogni eventuale aggiunte o correzione è ben accetta
Carlini Alessio
lb...@tin.it

Il documento è qui:
http://www.geocities.com/SiliconValley/Byte/6586/filesys.htm
Carlini Alessio
lb...@tin.it

Il documento di cui parlo č:


 all'organizzazione dei file e delle directory se interessa ..
Anche le partizioni?
EMG

 
http://www.geocities.com/SiliconValley/Byte/6586/filesys.htm
Ok,oki :-)
Ciao!

>Anche le partizioni?
Si,  visto che l'organizzazione delle stesse avviene nel Master Boot Record.
Comunque per inesattezze o mancanse basta mandarmi una @-mail.
Ciao
Carlini Alessio
Newsgroup: it.comp.lang.c
Titolo: Aiuto per uso float

Premetto che sono ancora agli inizi con il C (ma proprio agli inizi eh...).
Perchè questo piccolo programma, qualsiasi sia il valore di n (sia intero
che decimale), mi stampa sempre 0.00?
#include <stdio.h>
int main()
{
float n;
printf ("Immetti il numero: ");
scanf ("%.2f", &n);
printf ("Numero: %.2f", n);
return 0;
}
Grazie
Daniele

 [CUT]
-- 
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


Il motivo non lo so, ma è tutta colpa (dalle prove che ho fatto) di quel 
%.2 in scanf ... utilizza scanf("%f",&n) e lascia inalterato il resto ..
dovrebbe andare ..

Ok, grazie a tutti, in effetti cosě funziona.
Grazie ancora!
Daniele

Daniele ha scritto:

non da sempre zero, infatti se scrivi 3.22 ti darà come risultato 0.22
questo perchè tu gli dici di memorizzare nella variabile solo i primi 
due numeri dopo la virgola (%.2f), mentre tu vuoi che analizzi l'intero 
numero. devi perciò eliminare il .2
-- 
Yum! E' anche meglio se usate la crema di formaggio invece del tofu. E
zucchero. Un sacco di zucchero. E uova e burro: non dimenticate il burro.
Jeffrey Zeldman - Designing with web standards

Newsgroup: it.comp.lang.c
Titolo: Bison Flex

Potete consigliarmi qualche documentazione su bison flex che parli ( e
faccia esempi
decenti) della convivenza tra i due? Magari in italiano. Se c'e' in
regalo anche una maggiorata fisica e' meglio. :-)
Non riesco a usare i tipi multipli cioe'
union
int a;
float b;
(la sintassi non e' questa ora non ricordo ma non e' questo il problema)
Ho dichiarato il tipo di ogni token come da manuale. Il DJGPP ha
risposto
there are some errors senza neanche specifiěcare dove (!)
Grazie in ogni caso, Roberto.


Forse la cosa migliore e` cercare di avere accesso a una macchina Linux
e digitare
 man bison
 man flex
Marco Guidi
 

 there are some errors senza neanche specifiěcare dove (!)
Anche questo mi suona MOLTO strano.
-- 
Maurizio Loreti                      
http://wwwcdf.pd.infn.it/~loreti/mlo.html
Univ. of Padova, Dept. of Physics - Padova, Italy            
lor...@pd.infn.it
Newsgroup: it.comp.lang.c
Titolo: Domanda stupida:pulizia buffer tastiera, credo.

Salve a tutti , ho un problema  , ho una serie di funzioni che non ritornano
nulla ne passano nulla , agiscono su variabili globali , da un menů
scelgo una opzione , c'č una  chiamata ad una funzione che agisce su
variabili
globali , quando torno a menů principale con ESC dopo una serie
interminabile
di scanf , se premo il tasto F1 dal menů principale , che chiama un
altra funzione per un input di char , mi salta subito alla funzione
riga2.perchč?
Mi spiego meglio , almeno spero.
premendo il tasto F1 dal sotto menů : void sequenzaautomatica(){
inputxy(scanf &vattelapaesca);
inputzx(scanf &vattelapesca2);
inputxc(scnf &vattelapesca3);
...     }
finito , torno al sotto menů
premo ESC  e torno al menů principale
premendo  F1 dal menů principale :sistema();
void sistema(){
gets(riga1);       /* quě invece di partire dal gets(riga1); , mi parte dal
gets(riga2);*/
gets(riga2);
gets(riga3);    /* perchč ???  */
gets(riga4);
...}
Spero di essere stato chiaro  .
Grazie a tutti
Ciao  Roberto

 ha scritto nel messaggio
news:9rqu4t$3bo$3...@nreada.inwind.it...


 tasti.
[CUT]
non penso sia cosi , secondo me e per il fatto che dopo
una serie di 14-15 scanf  , resta nel buffer della tastiera
il carattere invio .
Ho risolto , uso While(getchar()!='\n');
CMQ grazie
Ciao  Roberto

Ho risolto , uso While(getchar()!='\n');
Si, e' la soluzione piu' elegante... lo sarebbe ancora di piu' se
messa in 1 bella macro come:
#define kbflush() while(getchar() != '\n')
Questo ti permette qualora su un sistema ci fosse un sistema migliore
per farlo di usare questo sistema semplicemente lavorando con #ifdef e
fornire questa alternativa qualora non ci fossero altri modi.
Fai solo attenzione a cosa succede se usi questo medoto su stdin gia'
vuoto.
Non so se sia standard o non definito, ma cercando di fare:
<CODE>
#include <stdio.h>
int main(int argc, char *argv[])
{
  int i, j;
  printf("\n %c %c\n\n", i, j);
  getchar();
  while(getchar() != '\n');
  getchar();
  while(getchar() != '\n');
  while(getchar() != '\n');
  i = getchar();
  j = getchar();
  printf("\n %c %c\n\n", i, j);
  getchar();
  return 0;
}
</CODE>
A i non assegna il carattere letto, mentre a J si, quindi attenzione
:)
Mox

 >[CUT]
Grazie 1000
Ciao Roberto