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

ciao a tutti.
ho bisogno di compilare i sorgenti del progr. ftp.
è scritto in C, e come al solito ci sono file .c e .h, e fin qui tutto
ok.
poi ho tre file strani: Makefile.am, Makefile.in, ftp.1
Ma come diavolo faccio a compilare tutto?
Di solito esiste un Makefile, ma non ho mai visto estensioni di questo
tipo.
Qualcuno ha qualche suggerimento?
Grazie
Matteo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 Qualcuno ha qualche suggerimento?
Makefile.am e' il makefile per automake, 
makefile.in
 e' il makefile generato 
da automake, ftp.1 e' la pagina del manuale. Avrai anche un "
configure.in
" 
e uno script chiamato "configure"
Dai un bel
    ./configure --help
per vedere le opzioni e poi
    ./configure --prefix=/usr/local
seguito dalle altre opzioni che ti possono servire.
Dopo di che verra' creato un makefile e potrai fare:
make
su -c "make install"
-- 
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."

 su -c "make install"
innanzitutto grazie per la risposta.
ora visto che ci sono ne approfitto per romperti le scatole :-)
nella dir del codice ci sono i seguenti files:
una serie di files .c
un paio di files .h
Makefile.am
Makefile.in
ftp.1
ChangeLog
e basta.
il configure non esiste proprio sai?
visto che c'è chiaramente un file main.c, non posso compilare quello
e tutti gli altri senza usare il file make?
Grazie ancora per l'interessamento!


 e tutti gli altri senza usare il file make?
Certo, ma spesso necessita di varie opzioni, tipo directory in cui
cercare i file inclusi, e librerie con cui linkare, che è difficile
scoprire a mano. Molto meglio affidarsi a configure e poi lanciare make
per compilare in automatico.
-- 
Andrea Bergia - studente              Linux Registred User #281550
"The one thing we're all waiting for, is peace on Earth and an end to
war,
it's a miracle we need, the miracle, the miracle, 
Peace on earth and end to war today,
That time will come one day you'll see when we can all be friends"

Newsgroup: it.comp.lang.c
Titolo: Struct tm

Ciao a tutti
non riesco a raggiungere i membri della struct in oggetto con questo codice:
int secondo;
struct tm tempo, * tmptr; //dichiaro tempo e il suo puntatore
   tmptr=&tempo; //metto tmptr > tempo
   time_t timer;
   time(&timer); //leggo la data di sistema
   tmptr=localtime(&timer); //carico la struct tm
   secondo=tempo.tm_sec;  //qui dovrei leggere i secondi!!!! invece no,
  //sembra una variabile non inizializzata
   printf("Secondo: %d \n", secondo);
dov'e che sbaglio?
c'è qualche altra funzione per avere i valori numerici delle variabili 
del tempo?

Nell'assegnazione
  tmptr=localtime(&timer)
tu cambi tmptr, che quindi non punta più a tempo, ma alla variabile di
ritorno della funzione.
Penso sia questo.

 libreria) e per leggere il contenuto si deve usare tmptr->tm_xxxx.
ora funza, grazie..
è dura riprendere dopo tanti anni lontano dal c..
Davide
Newsgroup: it.comp.lang.c
Titolo: Pulizia

Ho fatto un pò di pulizia nella tua mailbox come avevi chiesto. Ho dovuto
eliminare la mail con Gino Talibano perchè occupava troppo spazio, se la
vuoi mandare a qualcuno te la rispedisco.
Cecco

 ha scritto nel messaggio
news:pSHO7.288$Yc1....@news1.tin.it...

Scusate tutti, ho inviato per errore il msg nel NG.
Ciao,
Cecco

Newsgroup: it.comp.lang.c
Titolo: Registrare suoni da microfono?

Avrei bisogno di qualche spunto per realizzare un programma (a basso
livello ovviamente) che mi permetta di catturare i suoni da microfono
e tracciare le frequenze a video. Grazie!



Ovviamente il modo per leggere la forma d'onda d'ingresso è altamente
dipendente dall'hardware... posso solo dire che, se sei su Linux,
/dev/dsp è piuttosto semplice da usare.
Per "tracciare le frequenze", se ho capito cosa intendi, hai bisogno
di una libreria grafica e di un algoritmo per la trasformata veloce di
Fourier.
by LjL
ljl...@tiscalinet.it
Newsgroup: it.comp.lang.c
Titolo: Modifica file

Ciao a tutti!
sono nuovo di questo ng e del linguaggio C.
Vi propongo subito il mio prblema:
ho un file di  testo contenente un documento HTML. dovrei creare un
nuovo file di testo privo di tutti i tag presenti nel file originale
(della forma <nome_tag>)e scrivere a video il numero di righe presenti
nel nuovo file dopo la elaborazione.
posso supporre per semplicità che le frasi siano scritte una per riga.
sinceramente non so come procedere...
mi dareste una mano?
grazie mille.

 mi dareste una mano?
man fopen/fgets/fclose
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

Andrea Laforgia ha scritto:

siccome, come ho anticipato, non sono ancora esperto, potresti essere
un pò più dettagliato?
grazie comunque..

 un pò più dettagliato?
Studia le funzioni fopen() per l'apertura di un file, fgets() per leggere
le righe e fclose() per chiuderlo.


le ho studiate..
ma non ho capito bene come eliminare i tag..

 ma non ho capito bene come eliminare i tag..
Una volta letta la riga puo` fare una cosa simile ad una macchina a
stati. Gli stati possibili sono due:
intag == 1: sono all'interno del tag, la transizione avviene quando
trovo il carattere '>'
intag == 0: sono fuori dal tag, la transizione avviene quando trovo il
carattere '<'
        chap *p = riga;
        int intag = 0;
        do {
                if (*p == '>') {
                        /* tag chiuso, cambio di stato */
                        intag = 0;
                        continue;
                }
 
                if (intag) {
                        /* nulla da fare, avanziamo con la stringa */
                        continue;
                }
                if (*p == '<') {
                        /* tag aperto, cambio di stato */
                        intag = 1;
                        continue;
                }
 
                /* Fai quello che devi con il carattere *p,
                 * ad esempio:
                 */
                 putc(*p);
        } while(*p++);
Luca
-- 
Home: 
http://kronoz.cjb.net
Regole per la felicità:
1. Sii soddisfatto di quello che hai.
2. Assicurati di avere tutto.

 ha scritto nel messaggio 
news:dah324$tun$1...@dreamland.darkstar.lan...


 Anche se in browser in genere non fanno così.
Ovvio, il metodo suggerito da Kronos è volutamente semplice.
I browser fanno un "parse" in base alla grammatica del linguaggio
HTML/XHTML e compagnia bella.


        } while(*p++);
Come e` stato fatto notare un ciclo semplice come questo gestisce solo
HTML well formed.
Luca
-- 
Home: 
http://kronoz.cjb.net
Let me make your mind, leave yourself behind
Be not afraid

Grazie mille..
adesso butto giù qualcosa e vediamo se riesco..
Newsgroup: it.comp.lang.c
Titolo: compilatore windows


      Linux user :   #272373
      Linux machine: #155521

 Grazie.
 
LCC-WIN32
www.cs.virginia.edu/~lcc-win32/
oppure
DEV-C++ (che giustamente compila anche in C)
www.bloodshed.net
lcc č piů spartano e funzionale, dev invece offre invece un buon ide
A te la scelta,
riccardo

Se hai un po di pratica con Linux potresti provare anche DJGPP :
http://www.delorie.com/djgpp/
oppure il Borland C++ Builder Free compiler 5.5 :
 
www.borland.com
Con questi, oltre a quelli che ti ha detto Riccardo penso tu abbia da
divertirti!
Ciao
Wezzy

Newsgroup: it.comp.lang.c
Titolo: Sorgente Jpeg

Nessuno avrebbe un sorgente jpeg scritto in c
per vedere come si caricano le immagini?
Ciao.



Esistono sorgenti free distribuiti dall'Indipendent JPEG Group
http://www.ijg.org/
 ed ho letto che tale codice e' anche sfruttato da
Netscape (IoProgrammo N.16, a firma S. Meschini).
In ogni caso sono 774K di archivio compresso (versione PKZip) che
diventano circa 2M una volta decompresso... ^___^
Altri riferimenti sono sulla pagina ufficiale del gruppo
http://www.jpeg.org/
In ogni caso, se sei interessato al semplice funzionamento di massima
del codec ho l'articolo di Wallace del '91 in cui e' stato presentato
lo standard (IEEE Trans. on Consumer Electronics): non ricordo da dove
l'ho scaricato, ma puoi cercarlo come "
wallace.ps
" o "wallace.ps.gz".
Ciao
		A.

Newsgroup: it.comp.lang.c
Titolo: Requisiti minimi

Come si a sapere i requisiti minimi di un processore?
cioč che per un programma il minimo č un Pentium invece che un 486 o
un Pentium Pro o addiritura di un P4?
poi la ram?
Poi per i "riquesiti consigliati"?
Il Razziatore,
The Only Good Windows in an uninstalled Windows
-----------------------------------------------
E-MAILs : IlRazziat...@NOSPAMnetscape.net
WEB     : 
http://www.razziatore.dns2go.com/
ICQ     : 67552596

 Poi per i "riquesiti consigliati"?
Credo che si facciano delle prove su vari hardware, partendo da uno basso e 
pian pian si salga.
Ciao.
-- 
Abruzzo SIlvio
studente, 16 anni
goku_...@libero.it
silvi...@aruba.it
Linux Machine 219721
^_____^

Newsgroup: it.comp.lang.c
Titolo: Cosa vuole dire [OT]?

Volevo sapere cosa voleva dire quell'[OT] che si trova in alcuni post.

> Volevo sapere cosa voleva dire quell'[OT] che si trova in alcuni post.
Off  Topic -> Fuori Argomento -> non centra molto, ma ce provo lo stesso...
;)

 Volevo sapere cosa voleva dire quell'[OT] che si trova in alcuni post.
Off Topic. Ah, il  tag non ti autorizza a inviare  messaggi OT, anzi, di
solito fa incazzare (di  piu`) chi segue il NG (e  questo non aumenta le
probabilita` che qualcuno ti risponda).
Kronos
-- 
Home: 
http://kronoz.cjb.net
"Sei l'unica donna della mia vita".
(Adamo)
Newsgroup: it.comp.lang.c
Titolo: AIUTO !!!!!!!

Ragazzi, sono uno studente di Ingegneria e stò cercando un programma
gagliardo in linguaggio c da presentare all'esame di fondamenti di inf.
Mi sapete dire dove poterlo trovare, o meglio ancora mandarmene uno?
Fate questo gesto di solidarietà per un povero studente, grazie.

 writes:

#include <stdio.h>
#include <stdlib.h>
int main()
{
  printf("Hello, world!\n");
  return EXIT_SUCCESS;
}
P.S.: studia, somaro.
-- 
Maurizio Loreti                      
http://wwwcdf.pd.infn.it/~loreti/mlo.html
Un. of Padova, Dept. of Physics - Padova, Italy          
lor...@padova.infn.it

 
ah ah ah ah ah ah :-))))), uh uh uh uh uh uh, ih ih ih ih ih ih :-D
-- 
*******************************************************
  "C'e' un vecchio detto a riguardo delle reti che    
  recita: i problemi di banda possono essere risolti  
  con il denaro. I problemi di latenza sono piu' dif- 
  ficili poiche' la velocita' della luce e' una cos-  
  tante e non e' possibile corrompere Dio."           
 
                                     David Clark, MIT 
  Reply to 
bia...@maganet.net
*******************************************************

Newsgroup: it.comp.lang.c
Titolo: Codice automodificante

Salve a tutti, sto provando a cercare delle risorse riguardate il
seguente argomento:
"Self modifying code" in linguaggio C.
Vorrei capire i concetti che stanno alla base di questa tecnica e di
quelle correlate. I concetti alla base del funzionamento dello stack e
come posso interagire in modo diretto mediante un programma in
linguaggio C o in Assembly.


http://jargon.watson-net.com/lexicon.asp?w=trampoline
http://en.wikipedia.org/wiki/Self-modifying_code
Volevi altro?
Saludos
Adriano

Newsgroup: it.comp.lang.c
Titolo: Segmentation fault in semplice codice

Ciao!
Sono un principiante del linguaggio C e sto scrivendo i miei primi
programmi.
In uno di questi, il mio scopo era appendere il carattere ASCII,
corrispettivo ad un certo intero, al termine di una stringa in modo da
ottenere una nuova stringa.
Ad esempio:
stringa: matton
carattere: e
stringa (nuovo valore): mattone
In fase di compilazione, ricevo l'errore "segmentation fault" e,
purtroppo, non riesco a capire perche'.
Il codice e' il seguente:
main()
{
char* output="matton";
int i = 101;
char* letter;
letter[0]=(char)i;
letter[1]='\0';
printf("%s\n",letter); //stampa "e"
//la prossima linea non viene eseguita
strcat(output,letter);//segmentation fault
printf("%s\n",output);
}
Vi ringrazio molto per ogni aiuto! :)

 }
man strcat :
...The strings
   may not overlap, and the  dest  string  must  have  enough
   space for the result ...
Dovresti rivederti la gestione della memoria.
Cmq se usi char output[10]="matton\0" invece di char *output="matton"
funziona.
Se necesiti di allocazione dinamica allora vedi malloc calloc e compagni.

 }
Luca
-- 
Home: 
http://kronoz.cjb.net
Home: 
http://kronoz.cjb.net

[cut]
Grazie ad entrambi. Ora ho capito dove avevo sbagliato :)
Newsgroup: it.comp.lang.c
Titolo: Buon LIBRO per VISUAL C++

Volevo incominciare a studiare un po' di Visual C++.
Tenendo presente che ho già esperienze di programmazione in Visual
Basic, Pascal, Cobol, Fortran e Assembler che libro mi consigliate per
partire. Possibilmente un libro non per principianti di
programmazione.
Grazie e ciao.
Igor

partire. Possibilmente un libro non per principianti di
Per il C++, io consiglierei l'ultima (terza) edizione del "C++ Primer"
di Lippmann e Lajoie (non so se sia tradotta in italiano, o, se si`, con
quale qualita` di traduzione).  Di _V_ C++ in particolare non parla,
ma sul linguaggio e le sue librerie standard da` un'ottima formazione
a chi abbia gia` esperienze di programmazione.
Alex

programmazione.
Lippmann e Lajoie, "C++ Primer", 3a edizione, Addison-Wesley; non
so se e` stato tradotto in Italiano, ma penso che sia il migliore per
imparare il *linguaggio* C++ (a parte l'_ambiente_ VC++).
Per linguaggio _e_ ambiente insieme, ho sentito parlare MOLTO, ma
MOLTO, bene, di un libro edito dalla WROX, che mi pare si chiami
"Beginning Visual C++ 5".  Il libro in questione non l'ho visto, ma di
recente ho avuto modo di esaminare vari testi editi da WROX e sono
rimasto uniformemente ammirato dall'altissima qualita` esibita da
questi libri: dall'ottima carta, al layout chiaro e nitido, alla precisione,
rapidita`, chiarezza, profondita`, e cura editoriale sin nei dettagli.  La
maggior parte dei loro libri e` intitolata "Beginning <argomento>"
ovvero "Professional <argomento>" a seconda che il trattamento sia
"da zero" ovvero un approfondimento per gia` esperti, ma anche i
"Beginning", a quel che ho visto, marciano a ritmo sostenuto e snello,
senza tralasciare i dettagli importanti ma anche decisamente senza
"allungare il brodo" come ormai, purtroppo, al giorno d'oggi fanno
tante altre case editrici.
Per il solo ambiente, a chi il C++ come linguaggio lo conosca gia`,
potrei sulla stessa base consigliare i provare, sempre della WROX,
"Beginning MFC Programming", seguito da "Professional MFC with
Visual C++ 5" (indovinate di che editore?-).
Date un'occhiata ad 
http://www.wrox.com
 o 
http://www.wrox.co.uk
,
dove troverete tutte le informazioni in merito.
Alex
Newsgroup: it.comp.lang.c
Titolo: formato variabili in funzioni

Se io ho una funzione ad esempio così:
void prova(int n)
e faccio questa assegnazione:
float k = 2.3;
prova(k);
mi converte il float in int o cosa succede?
grazie
michele

 mi converte il float in int o cosa succede?
L'idea che ci metti di meno a scrivere 10 righe di codice che a chiedere qua
non ti č passata per la mente, vero?
--- bye

 mi converte il float in int o cosa succede?
Se il prototipo della funzione e` visibile, e se il valore di k e` nel 
range degli int, allora viene convertito automaticamente in un int (con 
troncamento della parte frazionaria) senza alcun problema.

Newsgroup: it.comp.lang.c
Titolo: Caricare Bitmap col C

Scusate...sono un neofita col C, ma vorrei sapere come si fa
praticamente a visualizzare un'immagine BMP (o di qualsiasi altro
formato) in C. Grazie!!!
--
Automatic posted from 
mail.tin.it
 [194.243.154.49]
via Mailgate Server - 
http://www.mailgate.org

formato) in C. Grazie!!!
Non si fa "nel linguaggio in quanto tale", bensi` dipende
interamente dalle librerie a tua disposizione.  Ad esempio,
se usi le api di Windows, potresti caricare l'immagine in
memoria con LoadImage, eccetera -- ma questo non ti
funzionerebbe invece su Macintosh, o Amiga, o DOS, o
che altro (il DOS poi non ha alcuna libreria di sistema che
sia standard per mostrare le immagini, quindi se quello e`
il tuo ambiente, devi precisare anche quale compilatore e
relative librerie usi -- Borland e BGI, o che altro).  Quindi,
riassumendo, dipende tutto dall'ambiente e in particolare
dalle librerie a tua disposizione e non dal linguaggio C.
Alex

formato) in C. Grazie!!!
Si scarica DJGPP da uno dei siti mirror, e poi si scarica pure Allegro v3.0
che, se non ricordo male, ha delle funzioni di manipolazione dei formati
bitmap piů diffusi
Ciao Luciano
Newsgroup: it.comp.lang.c
Titolo: Aiutoooo!!!

Salve a tutti,
ieri ho installato il DJGPP e tanto per provarlo scrivo un programmino scemo
che prende una stringa in input e la stampa ribaltata.
Fin qui tutto bene.
Ma quando vado a fare il ciclo do-while per eseguire altre
operazioni...salta di netto il controllo!!! Ma cos'e'??!!
Vi scrivo il sorgente qui.
/*Prog. che inverte una stringa*/
#include <stdio.h>
#include <string.h>
void reverse (char s[]);
void main (void)
{
char *string;
char sc;
   do{
   printf ("\n\nDammi una stringa: ");
   scanf ("%s",string);
   reverse(string);
   printf ("\n\n%s",string);
   printf ("\n\nAncora?");
     }while ((sc=getchar())!='n');  /*E' questo che da' problemi...ho
provato anche con uno scanf  dopo l'ultimo printf...ma niente!*/
   printf ("\n\nArrivederci boll'uomn!");
}
void reverse (char s[])
{
        int c, i, j;
        for (i=0, j=strlen(s)-1;i<j;i++,j--)
        {
                c=s[i];
                s[i]=s[j];
                s[j]=c;
         }
}
So che e' una cosa da niente, ma mi rodeil fatto che non mi funzioni una
scemata del genere!! Cosa puo' essere?
Grazie a tutti,
Diego.

 Vi scrivo il sorgente qui.
Ecco la versione corretta:
/*Prog. che inverte una stringa*/
#include <stdio.h>
#include <string.h>
void reverse (char s[]);
int main (void)
{
char *string;
char sc;
   do{
   printf ("\n\nDammi una stringa: ");
   scanf ("%s",string);
   while ( getchar() != '\n' );
   reverse(string);
   printf ("\n\n%s",string);
   printf ("\n\nAncora?");
     }while ((sc=getchar())!='n');  /*E' questo che da' problemi...ho
provato anche con uno scanf  dopo l'ultimo printf...ma niente!*/
   printf ("\n\nArrivederci boll'uomn!");
   return 0;
}
void reverse (char s[])
{
        int c, i, j;
        for (i=0, j=strlen(s)-1;i<j;i++,j--)
        {
                c=s[i];
                s[i]=s[j];
                s[j]=c;
         }
}
EMG
Newsgroup: it.comp.lang.c
Titolo: SERIALI - MODEM

Qualcuno riesce a spiegarmi perchè non riesco a far aprire la connessione al 
modem con questo codice?
#include <stdio.h>
#include <stdlib.h>
int main(){
FILE *fp;
fp = fopen("COM3","w+");
if (fp == NULL)
{
 fprintf(stderr, "ERRORE!");
 sleep(1000);
 exit(1);
 }
else
 {
 printf("CONNESSIONE MODEM AVVENUTA\n");
char a[] = "ATDT9"; //Comando del modem per chiamare comporre il numero 
telefonico 9, che funziona perfettamente con hyperterminal
int b=0;
b = fwrite(&a,sizeof(a),1,fp);
 printf("%s _comando ,\n %d _fwirte\n ",a,b); //vediamo che sta facendo
 }
//questo è un modo come un'altro per restare in attesa, fino a quando non 
digito qualcosa
printf("Chiudo?");
char chiudi[]="NO";
scanf("%s", &chiudi);
if (chiudi == "SI"){
fclose(fp);
}
return (0);
}

> fp = fopen("COM3","w+");
credo dipenda dal nome del file che apri, quello è un file normale, dovresti
dare "\\.\COM3".
Bye,
Raktzo

No, sento il modem che parte.... solo che poi e come se non riuscissi a 
scrivere il comando!
Ciao
"raktzo" <_ra...@users.sourceforge.net_> ha scritto nel messaggio 
news:43d0a...@newsgate.x-privat.org...


>> fp = fopen("COM3","w+");
non è che devi metterlo in read-write?
Bye,
Raktzo

scrivere il comando!
Forse il comando ha bisogno di un "invio", come su HyperTerminal.
Prova:
char a[] = "ATDT9\n";
oppure:
char a[] = "ATDT9\r";

 ha scritto nel messaggio 
news:ts03t11fg1vql1eti...@4ax.com...


> Hai ragione, ma anche cosě non va!


 
In DOS 6.2 esisteva il comando "mode" che impostava i parametri.


 ha scritto nel messaggio 
news:dqtq8r$hoh$1...@milena.home.net.it...


dovresti usare un DCB, popolarlo in precedenza con GetCommState. Per rendere
effettive le modifiche devi usare SetCommState.
Inoltre, prova ad usare CreateFile con i flag GENERIC_READ || GENERIC_WRITE,
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL per aprire l'handle sul dispositivo.
Dipende dalla versione di Win, prova anche a controllare che il tuo utente
abbia le autorizzazioni per l'accesso alla seriale
Bye,
Raktzo

Newsgroup: it.comp.lang.c
Titolo: Info Faq

Dove si torvano le Faq di questo ng??
Non vorrei postare cose non accette
Grazie
Enrico

 Non vorrei postare cose non accette
Su 
www.programmazione.it
.
EMG

Newsgroup: it.comp.lang.c
Titolo: A proposito di API...

Come faccio ad utilizzare le funzioni API in un programma C?
 devo avere un compilatore particolare?
ciao
Gino.

 devo avere un compilatore particolare?
Naah, piu` o meno qualsiasi compilatore C dovrebbe
andare.  Accertati di avere incluso <windows.h> che
dichiara la gran parte delle API, in fase di compilazione
(se il tuo compilatore ha gli header precompilati, cio`
aiuta, trattandosi di quasi 100,000 linee di zuppa...:-);
in fase di link, specifica le opportune .lib necessarie
(con almeno alcune versioni di gcc, questo NON include
kernel32.lib, che, misteriosamente, NON va invece
passata al linker).
Alex
Newsgroup: it.comp.lang.c
Titolo: perché non scrive e/o legge?

Allora, sto scrivendo un programma per l'università. Ho vari thread
concorrenti che comunicano tra di loro. Ho un problema che però non
riesco a risolvere, ed è legato al fatto che se un thread scrive su uno
stream dall'altra parte il destinatario non legge. O meglio, legge solo
quando forzo la morte del mittente.
Sono quindi convintoi che sia un problema di buffer. Ecco qui un piccolo
spezzone di codice:
...
        /* associamo uno stream al socket */
        stream = fdopen (s, "r+");
        setbuf (stream, NULL);
        while (1) {
                if (item->list==NULL) pause();
                /* ok, c'è roba da mandare */
                fprintf (stream, "da:%d a:%d tipo:HELO", number,     
                         item->number);
#ifdef DEBUG
                fprintf (stdout, "da:%d a:%d tipo:HELO\n", number,
                         item->number);
#endif
...
e questo va, perché vedo effettivamente l'output. Nel thread ricevente ho
...
        FILE *stream = fdopen (socketfd, "r+");
        while(1) {
                buffer[0] = '\0';
                while (fgets (buffer, BUFSIZE, stream) != NULL || buffer[0]=='\0') { ; }
                if (strstr(buffer, "HELO") != NULL) {
                        /* abbiamo ricevuto un pacchetto HELO */
                        fprintf (stream, "ACKHELO\n");
#ifdef DEBUG
                        fprintf (stdout, "Pacchetto HELO ricevuto:\n#%s#\n", buffer);
#endif
                }
...
ma perché legge solo quando chiudo il primo thread? (che a me servirebbe
aperto per avere l'ack....) Secondo voi il problema può stare nella
setbuf?
PS: ok, è un codice per unix, però magari qualcuno mi può aiutare....

 setbuf?
Potrebbe essere un problema di bufferizzazione... Hai provato con un
fflush() ?
C:\>iao Angelo
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 fflush() ?
fflush
fsync
sync
in tetture le combinazioni possibili e nulla...
Se rinuncio a mandare le stringhe col \n alla fine e uso un '*' (giusto
per avere un delimitatore di stringa) e scrivo una mia equivalente fgets
va...
Il programma va, ma vorrei capire perché non andava nell'altro sistema...
Newsgroup: it.comp.lang.c
Titolo: X28

Chi sa darmi informazioni in merito a questo protocollo?
Quanto differenzia dal protocollo TCP/IP?
Grazie a tutti coloro che mi dedicheranno un po del loro tempo.

Io potrei, ma e' OT e qualcuno si infastidirebbe.
Ti basti sapere che sono diametralmente diversi.
IP e' a datagramma, non orientato alla connessine
e con numerazione di una word a 32 bits.
l' altro e' orientato alla connessione, si appoggia
su reti X25 a piano di numerazione distrettuale X.121
CCITT (tutti defunti CCITT e X25), necessita di PAD
asincrono e definisce un set di verbi per stabilire
connessione, liberarla, settare profilo pad ecc...
Di per se non sarebbe male, ma il mondo lo ha spiazzato.
ciao
roberto


 ha scritto nel messaggio
news:9sqld1$1vr$1...@newsreader.mailgate.org...


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

Esiste una libreria free in C che permetta di accedere ai database di
access ? 
Dove posso trovarla ?
grazie.

 Dove posso trovarla ?
se c'e', su sourceforge 
www.sf.net

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

Ciao a tutti,
ho bisogno di convertire un float in una stringa, ho provato a cercare in
rete e leggo della funzione FTOA. Purtroppo non la trovo da nessuna parte.
Soluzioni?
saluti



stdlib.h
fcvt ... converte i float
ma non e' standardizzata
antonio

 rete e leggo della funzione FTOA.
Non sarebbe meglio usare sprintf() ?
Quella la trovi di sicuro da qualsiasi parte ci sia un compilatore C.
C:\>iao Angelo
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

grazie 1000,
sprintf non l'avevo nemmeno pensata! ;)
peccato però non avere a disposizione ftoa
saluti


 peccato però non avere a disposizione ftoa
Sarebbe una duplicazione di funzionalita', non ti pare? :-)


credo Tu abbia ragione, ma con sprintf come posso leggere il valore float
con un massimo di 2 decimali?


 con un massimo di 2 decimali?
Leggere con sprintf()? Spero tu voglia scrivere, altrimenti quello che ti
ho detto sono tutte fesserie. :-)
Comunque se vuoi avere solo due cifre decimali nell'output nello
specificatore di formato devi mettere ... Ma questo lo trovi su
un qualsiasi manuale/help online di C :-)
C:\>iao Angelo
P.S. La parte quotata va sopra la risposta, non sotto; altrimenti il
     tutto risulta poco leggibile.


 un qualsiasi manuale/help online di C :-)
Miii, io utilizzo Dev-C++ e non c'è nessun help! :)

 Miii, io utilizzo Dev-C++ e non c'è nessun help! :)
E dai... un minimo di sforzo. :-) Visto che sei in rete che ne dici di
provare il brivido di google?
C:\>iao Angelo

Newsgroup: it.comp.lang.c
Titolo: ancora problemi con i file

Non so perche', ma mi accade una cosa stranissima quando cerco di aprire 
un file. Nel primo caso mi da errore ritornano che il file non esiste 
(cosa non vera).
in = fopen(dataFile,"r");
L'errore lo stampo con strerror.
In questo caso invece l'errore non c'e':
char *d = "/home/paolo/prova.txt";
in = fopen(d,"r");
Naturalmente se stampo:
printf("%s - %s\n",d,dataFile);
Ottengo che le due variabili contengono la medesima stringa, ma in un 
caso tutto Ok, mentre nel primo errore. Perche'?
Grazie dell'eventuale aiuto.

 Giovanni
Grazie comunque, provero' a seguire passo passo il flusso del programma

 printf("%s - %s\n",d,dataFile);
E se stampi
  puts(strcmp(d,dataFile)?"NO":"SI");
???
-- 
Horst

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

Come faccio a mandare l'output su stampante?
Utilizzando stdprn come argomento di un fptintf, nello stesso modo in cui
uso
stdout o stderr, non ho nessun risultato.
Potete spiegarmi la sintassi corretta.
Grazie
Paolo

 stdout o stderr, non ho nessun risultato.
E aprendo il file LPT1 con fopen( "LPT1", "w" ); ?
EMG

Come faccio a mandare l'output su stampante?
Prova ad aprire un file in scrittura con fopen del tipo: fopen("PRN:", "w").
PRN: dovrebbe funzionare (a me funziona sempre quando redireziono l'output
dei comandi dos). Al massimo prova con LPT o LPT1.....
Ciao, Giuseppe
---------------------------------------------------------------------------
_Guybrush su IRCNet canale #programmazione
---------------------------------------------------------------------------
Newsgroup: it.comp.lang.c
Titolo: Richiesta di aiuto

Non sono pratica del linguaggio "C" per cui ho bisogno che qualcuno mi
sappia dire come poter sistemare alcuni problemi.
Ho avuto la necessità di eseguire la ricompilazione dei sorgenti di una DLL
(realizzata in C) usando Visual C++ ma sono stati segnalati i seguenti
errori che non so come sistemare:
--------------------Configuration: ricerca - Win32 Debug--------------------
Compiling...
L3srch.c
c:\vfoxpro\ricerca\l3srch.c(39) : error C2022: '24576' : too big for
character
c:\vfoxpro\ricerca\l3srch.c(41) : error C2022: '385' : too big for character
c:\vfoxpro\ricerca\l3srch.c(43) : warning C4013: 'l3srchen' undefined;
assuming extern returning int
c:\vfoxpro\ricerca\l3srch.c(48) : error C2022: '8192' : too big for
character
c:\vfoxpro\ricerca\l3srch.c(169) : warning C4018: '<' : signed/unsigned
mismatch
c:\vfoxpro\ricerca\l3srch.c(211) : warning C4133: 'function' : incompatible
types - from 'int *' to 'char *'
c:\vfoxpro\ricerca\l3srch.c(224) : warning C4133: 'initializing' :
incompatible types - from 'void (__cdecl *)(struct ParamBlk *)' to 'long
(__cdecl *)()'
Error executing cl.exe.
ricerca.dll - 3 error(s), 4 warning(s)
Grazie in anticipo.
Saluti,
===================================================
New Line s.r.l. - Paola Santarsiero
Via Donatori di Sangue, 100
20010 Arluno (MI)
tel. (02) 90329.1 - fax (02) 90329.236
email: 
soft...@newl.it
===================================================

 (__cdecl *)()'
Anche in questo caso c'è incompatibilità di tipi sul parametro restituito di
una funzione
Ciao
ByZ-2K

 (__cdecl *)()'


 (__cdecl *)()'

Newsgroup: it.comp.lang.c
Titolo: AiutoUrgentissimo

Ciao, ho un grosso problema con tre funzioni che devo consegnare dopodomani.
1. Qualcuno di voi saprebbe dirmi come potrei scrivere una funzione void
Rdiffinsiemi (LISTA L1, LISTA L2, LISTA * LDIFF) che date due liste non
ordinate ne costruisce RICORSIVAMENTE una terza *LDIFF che contiene la
differenza tra le due (L1-L2) ?
2. La seconda funzione è una funzione è int verifyvalbinalb(ALBERO A)  che
preso un albero binario non di ricerca verifica se il valore contenuto in
ogni nodo che non sia una foglia, è uguale alla somma di tutti i valori
contenuti nei suoi sottoalberi.
3. Infine la terza è una funzione che verifica se un albero è seghettato,
cioè se tutte le foglie dispari sono ad altezza h e tutte le pari ad altezza
h-1, il prototipo è xxxx  alberobinseghettato(ALBERO A,........) . Posso
scegliere il tipo restituito e i parametri. Vi prego, aiutatemi, grazie,
ciao.

 contenuti nei suoi sottoalberi.
Questa e' la piu' facile.
definisci una funzione a cui passi un albero e che
1) se l'albero e' una foglia restituisce il valore della foglia.
2) se l'albero non e' una foglia, chiama ricorsivamente
se stessa sui due sottoalberi, ottenendo due valori.
se i valori restituiti sono "legittimi" (vedi piu' avanti)
allora li somma. Se la somma corrisponde al valore della radice 
dell'albero restituisce questo valore, altrimenti restituisci un valore
speciale, impossibile da ottenere altrimenti, tipo -66666666, che
serve per segnalaare che il test e' fallito.
Se uno dei due valori era illegittimo (tipo -66666666) restituisce 
questo valore per propagare la condizione di errore.
poi definisci la funzione verifyvalbinalb in modo che chiami
la funzione di cui sopra sull'intero albero
e restituisce 1 (cioe' successo) se la funzione non ha riportato
il numero speciale che segnala l'insuccesso.
ciao,
g.
Newsgroup: it.comp.lang.c
Titolo: stringhe C newbie

Ciao
da un paio di giorni sto' rosicando C
rispetto ad altri linguagi noto che il tipo di dato stringa non c'e' 
.... :( miiii
ora volevo alcune delucidazioni se possibile
un sistema per utilizzare caratteri o stringhe e' utilizzare il tipo 
char per caratteri singoli
char lettera='A';
oppure crare array di caratteri:
char stringa[]="Albero"
char stringa[]={'A','l','b','e','r','o'}
p.s. questi ultimi due esempi sono equivalenti?
un'ultima cosa su 
html.it
 c'e' un minicorso ma questi esempi non funzionano
#include <stdio.h>
#include <string.h>
int main()
{
    int temp;
    int alpha[];
    int beta[];
    scanf ("%s \n", &alpha);
    scanf ("%s \n", &beta);
    temp = strcmp(alpha, beta)
    printf("%d \n", temp);
}
ottengo un'errore "Error: size of array is not known"
1)perche' utilizzare il tipo int per creare un array di caratteri?
2)perche' far precedere l'array da "&", mi sembra di aver letto che per 
gli array non c'e' bisogno di usare un puntatore al suo indirizzo....
p.s.io
 uso il compilatore Digital Mars C/C++ Compilers
grazie!


Ciao Alex
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 strcp(stringa,"Albero");
So bene che per Alex si sara' trattato di un semplice errore di 
battitura o al piu' distrazione, ma giacche' l'OP e' alle primissime 
armi col C, e' bene sottolineare che quella di sopra non e' "strcp" ma 
"strcpy" (manca la "y" finale).
Dan

Danguard wrote:

grazie a tutti!

 grazie!
Prego
Ciao
Matic

 
Ciau
Maticù

Newsgroup: it.comp.lang.c
Titolo: domanda - videogiochi in C-C++

qualcuno conosce dei siti dove posso trovare videogiochi realizzati in
C-C++? 
-eaks- 

 C-C++? 
Prova a cercare con Google o SourceForge qualche progetto opensource 
realizzato con SDL, o DirectX. In ogni caso, credo che videogiochi 
"storici" come Quake siano stati rilasciati al pubblico con gli interi 
listati in C.
Ciao,
Dan

Danguard ha scritto:

sorgenti c di quake
ftp://ftp.idsoftware.com/idstuff/source/q1source.zip

 C-C++? 
La idsoftware ha rilasciato in GPL i sorgenti di quake e quake II.
E' possibile vedere i sorgenti anche di altri prodotti sotto licenza 
commerciale.
http://www.idsoftware.com/business/technology/
http://www.idsoftware.com/business/techdownloads/
Ciao,
Cesare
Newsgroup: it.comp.lang.c
Titolo: newbie

Vorrei imparare il C partendo quasi da 0 (ho gią buone conoscenze di
informatica e so programmare in visual basic). Mi č stato consigliato questo
libro: Programmare in C guida completa -- di P.Aitken e B. Jones.  Cosa ne
pensate? Me lo consigliate anche voi o credete che sia meglio un altro?
grazie

 pensate?
magari come primo libro e poi rivedere tutto su K&R?
vi prego rispondetemi non ho molto tempo per fare questa scelta..



beh consigliano e consiglio: 
C Corso Completo di programmazione: Deitel&Deitel Apogeo
ISBN: 8873036694
Euro: 33,05


mi dai qualche dettaglio in piů? vorrei sapere da cosa parte, dove arriva e
se č approfondito negli argomenti di cui tratta.
e questo K&R come č? ne parlano tutti e alcuni post recenti mi hanno quasi
convinto che sia fondamentale per programmare veramente in c.

 convinto che sia fondamentale per programmare veramente in c.
Brian W. Kernighan e Dennis M. Ritchie, Il linguaggio C (Principi di
Programmazione e Manuale di Riferimento), Pearson (Prentice Hall),
Seconda edizione italiana
K&R sono autore del C & socio :)
Leggi quello che vuoi, ma se puoi consultare questo libro fai bene.
ciao,
-- 
printf ("Salvo\n");

 
Ce l'ho proprio sottomano ti scrivo i capitoli:
-Nozioni sull'elaborazione elttronica;
-Introduzione alla programmazione in C;
-Lo sviluppo di programmi strutturati;
-Il controllo del programma;
-Le funzioni;
-I vettori;
-I puntatori;
-I caratteri e le stringhe;
-La formattazione dell'input\output;
-Le strutture, le unioni, le enumerazioni e la gestione dei bit;
-L'elaborazione dei file;
-Le strutture di dati(liste, pile, code, alberi);
-Il preprocessore;
-Argomenti avanzati;
Io ci sot sutdiando e non č male, anche se alcuni esmpi sono un po' poco 
chiari
-- 
Zarathustra
(18/22 PO 80 B/S; S)
Parkpre, LeeCougan and Eleven munito
Newsgroup: it.comp.lang.c
Titolo: info C e Corba

  Ciao a tutti,
vorrei sapere come si fa in C a scrivere un  programma cliente e deggli 
oggetti distribuiti  per CORBA. Non so se mi sono espresso molto bene, 
ma e' un argomento che non conosco e mi riesce difficile spiegarmi. 
Spero che mi capiate ugualmente e potete essermi di aiuto.
   Ciao e grazie.
-- 
Posted from 151.99.229.28 by way of 
smtp1.libero.it
 [193.70.192.51] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Spero che mi capiate ugualmente e potete essermi di aiuto.
Ciao
Fausto
Newsgroup: it.comp.lang.c
Titolo: EOF e conteggio linee

salve a tutti
questo e' il mio problema:
se non ho capito male da questo codice:
  #include <stdio.h>
/* count lines in input */
    main()
    {
        int c, nl;
        nl = 0;
        while ((c = getchar()) != EOF)
            if (c == '\n')
                ++nl;
        printf("%d\n", nl);
    }
si dovrebbe ottenere un eseguibile che, dopo l'immissione di una stringa 
e la pressione del tasto invio ,visualizza il numero di linee occupate 
dalla stringa in input.
Il mio eseguibile invece entra nel ciclo while e da li non ne esce piu'.
Digito una successione di caratteri ,premo invio ,ma rimango all'interno
del ciclo while.
Credo perche' non vi sia il giusto riconoscimento dell EOF.
Ho controllato la definizione di EOF nel file stdio.h ,ed e' definito
come (-1).
Ho provato ad apportare alcune modifiche al codice ma senza risultati.
Il tutto compilato su Linux con gcc 2.96,con questa linea di comando :
cc main.c -o bau
    Vi ringrazio per il vostro aiuto :)


I'm not prejudiced, I hate everyone equally.

 
 ti ringrazio :)
     Ciao..
Newsgroup: it.comp.lang.c
Titolo: Problema Pro*C (HP-UX)

Ciao a tutti.
Il problema che si sta manifestando č abbastanza misterioso; il programma in
questione gira su HP-UX  (su hw Compaq) con Oracle 8.1.* ed utilizza delle
stored procedure PL-SQL.
In sostanza il problema č questo: un demone Pro*C (funzionante in
precedenza) č stato modificato (č stato aggiunto del codice) per
implementare una nuova funzione; č stato compilato correttamente (nessun
messaggio di warning) e lanciato. Quando viene elabora il primo insieme di
dati che gli viene fornito e viene chiamata una specifica stored procedure
PL-SQL da il seguente msg di errore ORA-01458. Fornendo lo stesso insieme di
dati una seconda volta, il programma fornisce il risultato atteso. Ho
controllato TUTTE le variabili passate alla stored decine di volte e non si
č evidenziato nulla di incongruente. Sembrerebbe un problema legato ad aree
di memoria che si sporcano (vengono utilizzate delle variabili "extern
VARCHAR") ma non sono riuscito ad isolare il problema. Qualcuno ha una idea
sulle cause di tale problema e su come eventualmente risolverlo?
Grazie in anticipo a tutti.
Carlo

 stored procedure PL-SQL.
Tutto cio' e' *MOLTO* dipendente dalla tua architettura allora... 
considerando che questo newsgroup tratta di C standard, direi che sei OT ;P
-- 
/**
  * Mattia Belletti - Undergraduate student @ 
cs.unibo.it
  * ICQ: 33292311   - email: 
mbel...@cs.unibo.it
  * IRC: BluShine   - site(s): 
http://cs.unibo.it/~mbellett
  * Linux registered user 299762 @ Linux registered machine 213003
  */

 stored procedure PL-SQL.
Tempo fa ho creato una libreria in C++ di un paio di oggetti che racchiudono
tutto il codice PRO*C dinamico proprio per evitare di dover eseguire tutti i
passaggi, anche noiosi e inutili...funziona bene; l'unico problema č che č
compilato per win e solaris 8 intel...
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 sulle cause di tale problema e su come eventualmente risolverlo?
Hai provato a compilare il codice con un memory checker? efence, o
qualcosa del genere, dovrebbe essere gia' presente nella tua
installazione...
HTH
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Newsgroup: it.comp.lang.c
Titolo: COMPRO VISUAL C++ O WATCOM 11.0

Acquisto a prezzo affare Visual C++ 5.0 o Watcom 11.0 eventualmente anche
learning/education editions.
Offerte a
mag...@veneto.shineline.it
Cordialmente,
Riccardo















Ma quante copie ne devi comprare ??????????
Bonf
Newsgroup: it.comp.lang.c
Titolo: Sscanf...a cosa serve di preciso?

Equivale al Gets,  ma con la possibilità di output formattato (L'Help on
line del Borland è un po' scarsotto a riguardo...)?
Grazie 1000!
Enrico S.
--
Webmaster della Pagina NON Ufficiale del SonyCRX100
SonyCRX120,  SonyCRX140E/S, SonyCRX100EX, HP8100
HP8200, HP9100 & HP9200
http://www.freeweb.org/computer/SonyCRX100/

Equivale al Gets,  ma con la possibilità di output formattato
sscanf
Header File
stdio.h 
Category
Input/output Routines
Syntax
#include <stdio.h>
int sscanf(const char *buffer, const char *format[, address, ...]);
int swscanf(const wchar_t *buffer, const wchar_t *format[, address,
...]);
Description
Scans and formats input from a string.
Note:	For details on format specifiers, see scanf.
sscanf scans a series of input fields, one character at a time,
reading from a string. Then each field is formatted according to a
format specifier passed to sscanf in the format string pointed to by
format. Finally, sscanf stores the formatted input at an address
passed to it as an argument following format. There must be the same
number of format specifiers and addresses as there are input fields.
sscanf might stop scanning a particular field before it reaches the
normal end-of-field (whitespace) character, or it might terminate
entirely, for a number of reasons. See scanf
 for a discussion of possible causes.
Return Value
On success, sscanf returns the number of input fields successfully
scanned, converted, and stored; the return value does not include
scanned fields that were not stored. 
If sscanf attempts to read at end-of-string, it returns EOF.
On error (If no fields were stored), it returns 0.
Newsgroup: it.comp.lang.c
Titolo: aito per principiante C

Inserendo 3 numeri Int a caso come faccio a ordinarli in ordine crescente o
decrescente?
if ((a>b && a>c) && b>c)  da qua in poi non so più come districarmi, ho
fatto un flow ma non riesco a meterlo in pratica.
GRazie per l'aiuto
Francesco

 if ((a>b && a>c) && b>c)  da qua in poi non so piů come districarmi, ho





God, I ask for patience -- and I want it right now!


Come soluzione mi sembra funzionare. Prova pero' a dare un'occhiata alla
funzione qsort( )...

 >
Se i numeri sono solo 3 potresti fare cosě:
if (a<b)
  {max=a;
   min=b;}
 else
  {max=b;
   min=a;}
if (c>max)
  max=c;
 else
  if (c<min)
    min=c;
Ciao
MaTTeO.

fatto un flow ma non riesco a meterlo in pratica.
E' facile.
Le relazioni d'ordine sono due ( k = 2 ), cioe' < e > ed agiscono su 3
(n=3) valori presi 2 alla volta, quindi le combinazioni da considerare
sono n!/(n-k!) = 3! / ( 3 - 2 ) ! = 3! = 6, ovvero :
void ordina( int* ip1, int* ip2, int* ip3 )
{
     int min = ( *ip1 <= *ip2 ) ? *ip1 : *ip2 ;
     int max = ( min == *ip1 )  ? *ip2 : *ip1 ;
     int med ;
     if ( *ip3 <= min )
     {
        med = min ;
        min = *ip3 ;
     }
     else
     if ( *ip3 >= max )
     {
        med = max ;
        max = *ip3 ;
     }
     else
     {
        med = *ip3 ;
     }
     *ip1 = min ;
     *ip2 = med ;
     *ip3 = max ;
}
Nella risoluzione dei tuoi problemi segui sempre la via piu' semplice.

 ha scritto nel messaggio
news:dgq3vs4kiuaosf4km...@4ax.com...

Newsgroup: it.comp.lang.c
Titolo: domanda da principiante

scusate per la banalita' ma sono agli inizi.
Se ho una variabile X e voglio metterci un intero dentro, scrivo:
scanf("%d", &X);
Se ho una variabile C e voglio metterci un carattere dentro
teoricamente dovrei scrivere:
scanf("%c", &C);
ma facendo cosi' non funziona.
Ho provato a controllare con lo step-watch e C contiene sempre '\n'
Lo so che potrei utilizzare la funzione getch().....ma perche'
scanf("%c", &C) non funziona ?
Grazie.

 ha scritto nel messaggio
news:shhr6v470lfna5l2b...@4ax.com...


 Ciao
Alessandro, il quote va sopra.
Cmq, probabilmente la sua scanf non e' all'inizio del programma, e quindi
risente della presenza nel buffer di uno '\n' lasciato li' da una
precedente scanf
Ti serve una riga con un ciclo mangia  '\n'
Ciao,
Riccardo

Riccardo
scusa ma sono agli inizi.
Potresti scrivermi questo ciclo mangia '\n'
grazie !!!



while(getchar() != '\n');
prego.
-- 
-=Riccardo Galli=-
 _,e.
s~  ``
 ~@.   ideralis Programs
.   ol 
 `**~  
http://www.sideralis.net
Newsgroup: it.comp.lang.c
Titolo: Aiuto con funzione...

Ciao a tutti....devo creare una funzione che date due liste in input,
con i valori inseriti in coda, mi dia in output una nuova lista che è
concatenazione ordinata delle prime due...
Il codice è questo....
#include<stdio.h>
#include<stdlib.h>
struct nodo
{
	int elem;
	struct nodo * next;
};
typedef struct nodo L_ELEM;
typedef struct nodo * L_PTR;
void insertTail(L_PTR *,int);
L_PTR fusioneListe( L_PTR, L_PTR);
int main(){
L_PTR L1=NULL;
L_PTR L2=NULL;
L_PTR L3=NULL;
int a,b, val, val2;
scanf("%d", &a);
while (a>0){
	scanf("%d", &val);
insertTail(&L1, val);
	a--;}
scanf("%d", &b);
while (b>0){
	scanf("%d", &val2);
	insertTail(&L2, val2);
	b--;}
L3= fusioneListe(L1, L2);
while (L3 !=NULL)
{
	printf("%d ", L3->elem);
	L3=L3->next;
}
}
L_PTR fusioneListe(L_PTR l1, L_PTR l2){
	L_PTR temp =NULL;
	while ((l1 != NULL) && (l2 != NULL)){
	temp= malloc(sizeof(L_ELEM));
	if (l1 -> elem == l2 ->elem){
		temp ->elem = l1 ->elem;
		temp ->next->elem = l2 ->elem;
		temp->next -> next=temp;
		l1 ->next =l1;
		l2 ->next =l2;
		}
	if (l1 ->elem > l2 ->elem){
		temp -> elem = l1 -> elem;
		temp -> next = temp;
		l1 ->next =l1;
		}
	else {
		temp ->elem = l2 ->elem;
		temp ->next=temp;
		l2->next =l2;
		}
	}
	return temp;
}
void insertTail(L_PTR *L2,int val1)
{
L_PTR temp;
if (*L2==NULL)
{
temp=malloc(sizeof(L_ELEM));
temp->next=NULL;
temp->elem=val1;
*L2=temp;
}
else insertTail (&((*L2)->next),val1);
}
Non riesco a capire dove sta il problema in questo esercizio....mi
sembra di aver fatto tutti i passi necessari,
ma non funziona!!!
Aiutatemi perfavore!!

 	while ((l1 != NULL) && (l2 != NULL)){
Dove vengono modificati l1 e l2?
E.


Ma l1 ed l2 non li voglio modificare.....
da queste due liste, devo crearmi una terza lista.......

 da queste due liste, devo crearmi una terza lista.......
l1 ed l2 non sono le tue liste, sono puntatori a elementi della lista.
Tu *vuoi* modificare l1 ed l2, in modo che puntino agli elementi
successivi delle loro liste.
Invece di:
l1 ->next =l1;
l2 ->next =l2;
dovresti usare:
l1 = l1->next;
l2 = l2->next;

 da queste due liste, devo crearmi una terza lista.......
Se la condizione (l1 != NULL) && (l2 != NULL) è verificata al primo 
ciclo del while, e l1 e l2 non vengono mai modificati, allora non 
uscirai mai dal ciclo...
A parte questo il codice è comunque molto confuso... Non capisco cosa 
intendi ottenere con quegli "if" e "if ... else ..." all'interno del 
while. Ti consiglio di ripensarci meglio e di riscrivere da zero la 
funzione principale.
E.

Newsgroup: it.comp.lang.c
Titolo: prova di post...


Prova riuscita alla perfezione.
--
Plasson
http://www.photosig.com/userphotos.php?id=12895