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

come si pu� controllare se un file non e stato scritto
e a zero byte?
Grazie
Ciao

 
risposta banale... lo apri e vedi se ï¿œ giï¿œ finito!?

 risposta banale... lo apri e vedi se � gi� finito!?
..., intendevo, controllare senza aprire il file, ma
verificando l'inode o qualche cosa del genere.
Ciao

 
eheh sospettavo ci fosse sotto qualcosa :)
comunque a questo punto direi che diopende dal sistema operativo.
per linux e simili documentati sulla syscall stat
per windows non saprei dirti, devi farti un giro su msdn, di sicuro c'ï¿œ 
qualcosa di abbastanza simile.
ultimamente mi ï¿œ caduto lo sguardo sulle boost... li ci dovrebbe essere 
una libreria portabile per l'accesso alle directory non ricordo il nome 
preciso, ma basta fare un giro su 
boost.org
.

ho scordato di aggiungere che il s.o. e WinXp
ok, ti ringrazio.
Ciao

Newsgroup: it.comp.lang.c
Titolo: Una domanda un po stupida.

Salve, mi sapete dire qual č il carattere di formattazione per stampare come
double un numero?
Si tratta di %le?
Che differenza c'č tra %le %lf e %lg (ammesso che siano delle forme valide
per printare un double)
Grazie in anticipo,
Sebastiano

double un numero?
%f
Se usi printf() vale sia per i float che per i double.

Ok, ma allora se uso:
 while( fscanf(param,"%c",&a)!=EOF && a!='=');
          fscanf(param,"%.8f",&DT_1);
per quale dannato motivo non riesco a leggere il numero che ho scritto nel
mio file.dat correttamente?
Il file .dat è cosi fatto:
DT_1=0.00076923

 mio file.dat correttamente?
Perché scanf() e printf() si comportano in modo diverso.
[root@fokhouse /tmp]# cat file.dat
DT_1=0.00076923
[root@fokhouse /tmp]# cat leggi.c
#include <stdio.h>
int main(void)
{
        double d;
        FILE *in;
        in = fopen("./file.dat", "r");
        fscanf(in, "%*[^=]=%lf", &d);
        fclose(in);
        printf("Ho letto %.8f.\n", d);
        return 0;
}
[root@fokhouse /tmp]# ./leggi
Ho letto 0.00076923.
[root@fokhouse /tmp]#
Ciao ciao,
Andrea
-- 
"...Unix, MS-DOS, and Windows NT (also known as the Good, the Bad, and 
 the Ugly)."
(by Matt Welsh)

mio file.dat correttamente?
Perche' non ho scritto : "se usi fscanf", ho scritto "se usi printf".
Con printf() vale la promozione dei tipi nel passaggio di parametri e
tutti i parametri float divengono double. 
Con fscanf() valgono i principi di scanf() e cioe' %f per i float e
%lf per i double.
Newsgroup: it.comp.lang.c
Titolo: Parametri del main da linea di comando

come si utilizzano i parametri passati da linea di comando??
Saluti
Alberto G:

cercare su google sarebbe meglio per domande che sono sicuramente gia'
state fatte.
cmq
int main(int argc,char *argv[])
{
 int i;
 printf("Sono stati inseriti %d argomenti\n",argc-1);
 for(i=0;i<argc;i++)
	printf("argv[%d]: %s\n",i,argv[i]);
}
da' un'occhiata all'output di quel programmino.
argc indica il numero di elementi passatialla riga di comando, + il nome
dell'eseguibile
argv e' un array di stringhe, ed ad ogni indice contiene un parametro
passato per linea di comando (il primo e' il nome dell'eseguibile)
Buona programmazione
-- 
-=Riccardo Galli=-
 _,e.
s~  ``
 ~@.   ideralis Programs
.   ol 
 `**~  
http://www.sideralis.net


int main(int argc,char *argv[])
argc -> Numero di parametri passati dalla linea di comando
char *argv[] -> Array di stringhe che contiene i parametri.
Esempio:
mioprogramma par1 par2 par3
allora:
argc->3
arcgv[0]="par1"
arcgv[1]="par2"
arcgv[2]="par3"
Ciao
Rignhio

 arcgv[2]="par3"
Piccolo errore con i numeri:
- argv[0] = mioprogramma
Il resto e' giusto, solo shiftato di una posizione ("par1" sta' nella prima 
posizione, cosa molto intuitiva).
L'ultimo puntatore e' a NULL (cosa che ti permette di usare argv come una 
lista: argv[argc] = NULL).
-- 
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."


Hai ragione....pardon
Ringhio
Newsgroup: it.comp.lang.c
Titolo: Aiuuto

Salve avrei un problemino.....
Ho bisogno di calcolare la lunghezza di una stringa
Lo so che esiste la strlen ma questa funziona solo per una parola.....mi
spiego meglio se uso strlen per "ciao come stai" mi restituisce 4 ovvero la
sola lunghezza di "ciao"
io vorrei invece che mi restituisse 14.
Avevo pensato di utilizzare una stringa di dimensioni fisse
char * testo;
allocarla dinamicamente
testo= (char*)malloc(256*sizeof(char));
azzerarla
bzero(testo,256);
e poi scorrerla dal 256esimo fino al primo cercando l'elemento '/0'
secondo voi funziona?
Grazie
Ovviamente se mi potete consigliare un metodo migliore ve ne sarei grato.
Ciao
Danny

 io vorrei invece che mi restituisse 14.
   Infatti in generale restituisce quattordici. Il comportamento che si 
presenta nel tuo caso specifico e` certamente provocato da qualche 
errore nella formazione della stringa, per esempio nell'acquisizione da 
input. Controlla meglio e riprova, ovvero postaci il piu` breve brano di 
codice significativo nel quale si presenta l'errore.
-- 
Veri pirati noi siamo       Ma cosa c'e` di male?
Contro il sistema lottiamo  Ma cosa c'e` di strano?
Ci esercitiamo a scuola     Facciamo un gran casino
A far la faccia dura        Ma in fondo lavoriamo
Per fare piu` paura         Per capitan Uncino

Ovviamente se mi potete consigliare un metodo migliore ve ne sarei grato.
Il modo piu' diretto e veloce e' sempre:
int i=0, cont = 0;
while (stringa[i++] != '\0') //stringa e' il char* che devi "misurare"
    cont++;
Che non e' ne piu' ne meno che una strlen().
Mox :)

 sola lunghezza di "ciao"
Cio' e' piuttosto strano: non e' che hai preso la stringa da console usando
scanf()?
se cosi fosse, prova ad usare gets().
--
Zeppe

E' vero usavo la scanf ....
Ora uso la gets e funziona.
Grazie
Newsgroup: it.comp.lang.c
Titolo: problema con funzione c exec

Sto creando semplici programmini che implicano uso si exec dopo un
fork. 
Il problema lo trovo nel capire a cosa serva env_init[] che si passa a
inizio programma che sara' poi richiamato nell' array inserito nella
execle.
Tnx & Bye Marco.

 ha scritto nel messaggio
news:li9qdvcuuskier065...@4ax.com...

La funzione execle prende tra i parametri anche l'array delle variabili di
ambiente.
Adesso non sono sicurissimo, ma mi pare che per ottenere i valori delle
variabili di ambiente si dovesse dichiarare il main in quel modo la'.
int main(int argc, char * argv[], char * env[]) {
...
   execle(path,arg1,arg2,...,NULL,env);
...
}
Se non ti interessa passare alla execle l'ambiente, usa al suo posto la
execl:
int main(void) {
...
   execl(path,arg1,arg2,...,NULL);
...
}
Ciao,
Ema
Newsgroup: it.comp.lang.c
Titolo: Distanza date e sorgenti !

Come si fa a calcolare la distanza in giorni tra due date immesse dall'
utente  considerando anche gli anni bisestli e programmando in ANSI C ?
E.....dove posso trovare sorgenti e/o esempi di classici problemi di
programmazione in c ( per esempio calendario , archivio clienti ecc. ) ?
Grazie a quelli che mi risponderanno .

 utente  considerando anche gli anni bisestli e programmando in ANSI C ?
Di solito si calcola il giorno giuliano che corrisponde ad una data, poi si
calcola quello corrispondente all'altra data e si fa la differenza tra i
due.
Queste sono due funzioni usate normalmente nei programmi di astronomia (io
le uso anche in un programma che scrissi alcuni anni fa per il calcolo delle
eclissi). Tengono conto della riforma di Papa Gregorio introdotta
nell'ottobre del 1582 (il giorno seguente al 4/10/1582 è il 15/10/1582).
Sono valide anche per anni negativi (prima di Cristo)  con la convenzione
che Cristo è nato nell'anno 0, l'anno antecedente a questo è il -1 e quello
seguente è l'anno +1.
La seguente funzione richiede il giorno (eventualmente con i decimali) il
mese e l'anno e ritorna il giorno giuliano. Nella variabile giorno viene
memorizzato il giorno della settimana (0=domenica).
double GMA2JD(const double g,const UCHAR m,const short a)
{
 int M,A,aa,bb;
 if(a==1582 && m==10 && g>4 && g<15) return -9999;
 if(m>2) { A=a; M=m; } else { A=a-1; M=m+12; }
 if(a*10000+m*100+g<15821015) bb=0; else { aa=A/100; bb=2-aa+aa/4; }
 const double JD=int(365.25*(A+4716))+int(30.6*(M+1))+g+bb-1524.5;
 giorno=int((int(JD+.5)+1.5))%7;
 return JD;
}
La seguente funzione richiede il giorno giuliano e tre puntatori al giorno,
mese e anno in cui memorizzare la data equivalente a JD. Ritorna false se
JD<0.
bool JD2GMA(const double JD,double *g,UCHAR *m,short *a)
{
 if(JD<0) return false;
 const double J=JD+.5; const int z=int(J); int A;
 if(z<2299161) A=z;
 else { int a=int((z-1867216.25)/36524.25); A=z+1+a-int(a/4); }
 int B=A+1524,C=int((B-122.1)/365.25),D=int(365.25*C),E=int((B-D)/30.6001);
 *g=B-D-int(30.6001*E)-int(J)+J;
 if(E>13) *m=E-13; else *m=E-1;
 if(*m>2) *a=C-4716; else *a=C-4715;
 return true;
}
Io le ho inglobate in una classe c++ in cui vengono calcolate anche le date
islamiche, per cui spero di non essermi dimenticato nulla. In caso di
problemi contattami pure.
Cristiano
Newsgroup: it.comp.lang.c
Titolo: FAQ 8 - Ordine di valutazione degli operandi e dei parametri di una funzione

Io provo a proporre questa.......
----------------------
Si raccomanda sempre in C di porre molta attenzione nella scrittura di
espressioni molto lunghe anche perchè questo può compromettere la futura
leggibilità del programma.
In C sono defininite regole sulla precedenza e associatività degli
operatori, ma non sull'ordine di valutazione degli operandi.
Per esempio nell'espressione:
   (a+b) * (c+d);
il compilatore può valutare indifferentemente prima (a+b) o (c+d).
Sono quindi da evitare, in quanto semanticamente errate, espressioni del
tipo:
   k + (++k);
Analogamente pur essendo definito in C l'ordine di passaggio dei parametri
di una funzione sullo stack, non ne è definito il loro ordine di
valutazione.
Quindi per esempio il seguente pezzo di codice è errato:
   int var=5;
   printf("%d,%d,%d",var,++var+var++,var);
Infatti stampa nei rispettivi compilatori:
   7,12,5         TurboC , Djgpp e VaxC (senza optimizer)
   7,13,5         MPWC e VaxC (con optimizer)
   7,13,7         ThinkC
------------------
L'ultimo esempio è un po' bruttino e sarebbe da provare perchè l'ho trovato
in delle vecchie dispense
________________________________
Togliete NoSpaM per rispondermi
bye Brain

Oops! scusa, ti ho copiato il numero.. il fatto è che il mio server è un po'
una pietà e i messaggi mi arrivano  con mooolto ritardo. (ho ricevuto un'ora
fa (22:00 GMT) alcuni messaggi di mezzogiorno!).
Per questo non stupitevi se la bozza delle FAQ attualmente su internet non è
aggiornatissima... provvederò domani!
Ciao
MArco

 leggibilità del programma.
Tutto giusto ma una FAQ deve contenere solo domande e risposte
frequenti. Questa lo è?
EMG

 frequenti. Questa lo è?
sarà che ci sono fissto io.... comunque c'ho provato
--

Newsgroup: it.comp.lang.c
Titolo: Allocazione?

Aiuto!!!!
Cerco disperatamento gli algoritmi per l'allocazione in memoria di alberi
binari!!!! non che per una visita per livello, sempre di un albero binario
di ricerca s'intende!!!!!
C'è nessuno che può aiutarmi!!!!!!
                Aiutoooooo!!!!!
e-mail: 
min...@hotmail.com

di ricerca s'intende!!!!!
La mia soluzione, ovviamente ricorsiva :) 
#include <stdio.h>
#include <string.h>
const int TRUE  = 1 ;
const int FALSE = 0 ;
typedef struct foglia {
	       int num ;
	       struct foglia * sotto_albero_sinistro;
	       struct foglia * sotto_albero_destro;
	       } * ptr_foglia;
void inserisci_numero( int num, ptr_foglia * radice )
{
     ptr_foglia  nodo_temp ;
     nodo_temp = (ptr_foglia) malloc( sizeof( struct foglia ) );
     nodo_temp->num = num;
     nodo_temp->sotto_albero_sinistro = NULL;
     nodo_temp->sotto_albero_destro = NULL;
     if (*radice == NULL)
	*radice = nodo_temp;
     else
     if (num <= (*radice)->num)
	inserisci_numero( num, &(*radice)->sotto_albero_sinistro );
     else
	inserisci_numero( num, &(*radice)->sotto_albero_destro );
}
int search( int num, ptr_foglia radice )
{
    if (radice == NULL) return FALSE;
    else
    if ( radice->num == num )
       return TRUE ;
    else
    if ( num < radice->num )
       return search( num, radice->sotto_albero_sinistro );
    else
       return search( num, radice->sotto_albero_destro );
}
void scrivi_albero_ordinato( ptr_foglia radice )
{
     if ( radice )
     {
	scrivi_albero_ordinato( radice->sotto_albero_sinistro );
	printf("%d\n", radice->num);
	scrivi_albero_ordinato( radice->sotto_albero_destro );
     }
}
int main()
{
    ptr_foglia radice_albero = NULL ;
    struct foglia foglia_trovata ;
    inserisci_numero( 3, &radice_albero );
    inserisci_numero( 1, &radice_albero );
    inserisci_numero( 4, &radice_albero );
    inserisci_numero( 5, &radice_albero );
    inserisci_numero( 2, &radice_albero );
    scrivi_albero_ordinato( radice_albero );
    if ( search( 5, radice_albero ) )
       printf(" trovato ! \n");
    else
       printf(" non trovato ! \n");
    return 0;
}
Skyscraper
----------------------------------------------------------------
"Sopra il camper la capra campa, sotto il camper la capra crepa"
--
Posted from 
itaca.ulysse.it
 [195.223.254.1]
via Mailgate.ORG Server - 
http://www.mailgate.org

Grazie mille Skyscraper, mi sei stato di grandissimo aiuto!!!!!
Grazie                Marc

Newsgroup: it.comp.lang.c
Titolo: Please, read my question

Hi
I have a problems in Microsoft Visual C++ 6.0.
I begins with to create a "MFC AppWizard" and chooses to create
a Dialogue. Then draws i out a RichTextBox. Then create a
exe file of the.
Why goes the not that start the exe-files when i uses a RichTextBox?
Please, help me.
From Alexander in Sweden.

...

Newsgroup: it.comp.lang.c
Titolo: tipi enumerati

supponiamo che io abbia un tipo enumerato cosě definito
enum color {red,blu,yellow};
enum color c;
primo problema:
se scrivo..
c=red;
come faccio a fare uscire a monitore red?
se scrivo printf("%s",c) non funziona ... se scrivo printf("%d",c) non
funziona...quindi?
secondo problema:
se da input devo leggereil valore di c, come devo scrivere?
scanf("%s",&c)... oppure scanf("%d",&c)... ???

 scanf("%s",&c)... oppure scanf("%d",&c)... ???
c e', praticamente, un INT, quindi va bene %d, anche se, se cerchi di
scriverci con la scanf("%d",&c), il compilatore (gcc) con l'opzione -Wall
ti dovrebbe restituire un warning come questo:
prova.c:13: warning: int format, color arg (arg 2)
perche' metti un int in un color!
ciao
-- 
Er Baitch
"Live Your Life!!!" (Ring ain't a jail)
http://baitch.altervista.org/

Ok, su questo ci sono, ma nel momento in cui scrivo
c=red; a c assegno il colore red OK
Poi se voglio stampare a video il contenuto di c scrivo
printf("%d",c), ma giustamente si stampa 0 e non  red, io vogli ovar
stampare red, come devo fare?

 stampare red, come devo fare?
In C (e in C++) non si puň. Non esiste una corrispondenza valore-stringa a
run-time. In C# invece (al contrario) sě.
(chiaramente lo puoi fare con un bel if (c == 0), else if (c == 1) ....
--- bye



un work-around:
..
const char * colorstr[3] { "red", "blu", "yellow" };
enum color {red,blu,yellow};
..
c = red;
..
printf("%s\n", colorstr[c]);
..
Se proprio devi farlo, puoi farlo cosě :)
PS: in inglese č "blue" :P
Ciao
Matic
Newsgroup: it.comp.lang.c
Titolo: Potete dare uno sguardo a questo prog?

Salve, mi trovo in difficoltà con questo prog, l'abbiamo fatto oggi a
scuola, vi do il testo:
Eseguire la media aritmetica di una sequenza di numeri interi, controllare
che la media è pari o dispari, se la media è da 0 a 40 eseguire il perimetro
del quadrato, da 41/80 il perimetro del rettangolo. Se la media è positiva
dividere per 2.
Io ho abbozzato questo, però nn va, il prog nn risponde.
#include<stdio.h>
#include<conio.h>
void main(){
 int somma,n,i,a,media,x,pq,lq,altezza,perimetro,area,base;
 base=0;
 altezza=0;
 media=0;
 somma=0;
 printf("Quanti numeri vuoi inserire: ");
 scanf("%d",&n);
 for(i=0;i<n;i++){
  printf("\nInserire numeri: ");
  scanf("%d%",&a);
  somma=somma+a;
  media=somma/n;
 }
 printf("\nLa somma e' %d ",somma);
 printf("\nLa media e' %d ",media);
 if(media>=0&&media==40){
 ((media%2)==0);
 printf("\nPARI");
 x=1;
 }
 else{
  ((media%2)==1);
  printf("\nDISPARI\n");
  x=2;
 }
 switch(x){
 case 1:
  printf("\n\nPERIMETRO QUADRATO");
  printf("\nInserire lato: ");
  scanf("%d",&lq);
  pq=lq*4;
  printf("\nIl perimetro del quadrato e' %d \n",pq);
  break;
 case 2:
  printf("\n\nPERIMETRO RETTANGOLO");
  printf("Introdurre base e altezza separati da una virgola:\n");
  scanf("%d,%d",&base,&altezza);
  area=base*altezza;
  printf("\nBase: %d Altezza: %d\n",base,altezza);
  printf("Area: %d\n",area);
  perimetro=base*2+altezza*2;
  printf("Perimetro rettangolo = %d\n\n",perimetro);
  break;
 }
}

 }
Quello che hai scritto, secondo me, non ha alcun senso. Trovo strane anche
alcune domande: se la media vale 1.3333333 il numero è pari o dispari?
Insomma questa assunzione che la media debba essere un intero mi sembra del
tutto ingiustificata. Facendo finta che la media sia un numero intero,
dovresti sostituire il tuo codice con:
    if (media %2)
        printf("\nDISPARI\n");
    else
        printf("\nPARI\n");
    // meglio ancora:
    // printf("\n%s\n", x % 2 ? "DISPARI" : "PARI");
    if (media>=0 && media < 41)
        x=1;
    if (media > 40 && media < 81)
        x = 2;
Maurizio.

}
Mox

  if(media>=0&&media==40)
Questo e' vero solo se 'media' vale 40
Immagino che volessi qualcosa del tipo
if(media>=0&&media<=40)
-- 
 Ciao, Bianco.
 Reply to luca.bianco (at) 
tiscali.it
Newsgroup: it.comp.lang.c
Titolo: Aiuto, programma C :(

Salve, non riesco a creare un programma che fa questo:
un processo padre genera un processo figlio.
Il figlio genera una sequenza di numeri interi compresi tra 1 e N e li
comunica al padre il quale provvede a visualizzarli sullo schermo.
Il valore di N č inizializzato dal figlio.
Infine, sia il padre che il figlio devono disabilitare il segnale di
SIGINT.
io ho un programma fatto piů o meno cosě:
*/
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#define DIM 256
#define LEGGI 0
#define SCRIVI 1
int main() {
  int	n, pd[2];
  int  pid;
  char line[DIM];
 
  if (pipe(pd) < 0) {
	printf ("errore pipe");
      exit(1);
  }  
  if ( (pid = fork()) < 0) {
    printf("errore fork");
    exit(1);
  } else if (pid > 0) {		
    /* padre */
    close(pd[LEGGI]); // chiude il canale che non usa
    write(pd[SCRIVI], "Ciao, figlio", DIM);
  } else {				
    /* figlio */
    close(pd[SCRIVI]);// chiude il canale che non usa
    n = read(pd[LEGGI], line, DIM);
    printf("%s",line);
  }
}
ma questo non va tanto bene per lo scopo prefissato sopra :(
aiuto!

     n = read(pd[LEGGI], line, DIM);
Il *nix i processi vengono schedulati senza uno schema;
quindi se il padre chiude lo stream di lettura, e/o il figlio
chiude lo stream di scrittura...mi dici come fanno ad eseguire
la read e/o la write?!?!?!?
Newsgroup: it.comp.lang.c
Titolo: URGENTISSIMO!!

Ho un bisogno urgentissimo di imparare ad usare le socket in c...... chi mi
sa indicare un sito in italiano o inglese dove reperire informazioni...
grazie mille
    ricky


www.gnu.org
vai su search e scrivi socket
ho iniziato dalla guida del gnu c


«If the facts don't fit the theory, change the facts.»
(Albert Einstein)
Newsgroup: it.comp.lang.c
Titolo: send di una struct

E' possibile effettuare una send di questo tipo:
send(socket, (void *)&pacchetto, sizeof(pacchetto), 0 );
con pacchetto uguale a:
typedef struct type_pacchetto {
        char userName[30];                        /* nome mittente */
        char fileName[30];                         /* nome file */
        char opzioniCompilazione[150];    /* opzioni di compilazione */
        unsigned long int crc;                      /* CRC */
        unsigned long int lunghezzaFile;     /* lunghezza del file */
} type_pacchetto;

E' possibile effettuare una send di questo tipo:
Eh no, cavolo... anche qui?
Ti abbiamo gia' letto su it.comp.lang.c++ e su 
it.comp.programmare.win32 :-(
-- 
ciao,
hal

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

Ciao a tutti,
ho bisogno di inizializzare una stringa con una frase che comprende anche il
carattere ", ma appena lo inserisco questo viene visto come fine della
stringa. Faccio un esempio:
se voglio avere come output
"pippo"
dovrei fare
char *prova = "questa variabile si chiama "prova"";
printf("%s",prova);
ma le doppie " mi danno un problema.
Come si fa?
Grazie
Fabrizio

 Grazie
Prego
Ciao
Matic

On Wed, 15 Oct 2003 23:22:58 +0200, "fabrizio"
<fabs...@liberoNOSPAM.it> wrote:

per il carattere " usa \" ---> "questa variabile si chiama \"prova\""
se vuoi indicare un percorso di file come C:\windows\system allora:
per il carattere \ usa \\ "C:\\windows\\system"
Se poi vuoi pagarmi il consiglio allora chiama a 005 353 2323 :P
Saluti ^__^

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

Ciao a tutti,
devo realizzare un piccolo programmino in c che faccia le seguenti cose?
dati in input n numeri compresi da 1 a 90 si determini il numero delle
combinazioni ( lo sviluppo integrale in sestine).
visualizzare le sestine cosě calcolate.
potete aiutarmi ?
Rocco

 potete aiutarmi ?
Se hai qualche problema in particolare che riguardi il linguaggio C, si` 
(basta che dici qual e` questo problema). Se vuoi che qualcuno te lo 
scriva da zero, allora no.
-- 
Enrico `Trippo' Porreca

 ha scritto nel messaggio
news:40CCAF59...@people.it...


 Come devo procedere per avere le combinazioni , visualizzare le sestine?
  scanf, printf :-)
-- 
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: Cosa significa?

#define NULLAACC (struct acc_frg *)0
subito dopo aver definito la struct acc_frg ...
grazie!
There is NOSPAM in my signature ;-)


Secondo me niente. Da standard, 0 (come simbolo) e' asse-
gnabile a qualsiasi puntatore e assume sempre il signifi-
cato di puntatore NULL. Usare un cast esplicito addirit-
tura in una macro non ha significato neanche come ausilio
alla leggibilita'.
Comunque non e' sbagliato, solo ridondante.
ciao.

>Comunque non e' sbagliato, solo ridondante.
Grazie; potresti darmi una definizione esatta di quello che fa?
... sono mooolto inesperto!
Sai, sto analizzando un lungo programma su cui dovro' "lavorare" e (da
inesperto) è un'impresaccia! :-) ... avrei tanti di quei quesiti da proporre!
... scusa lo sfogo ...
Ciao
Feld



In C la notazione (tipo)espressione si chiama cast o, in italiano,
conversione esplicita di tipo.
le regole di type casting sono documentate e coinvolgoni interi di
tutte le dimensioni (char compresi) con segno e senza, floating point
e puntatori.
nel caso dei puntatori, ad un puntatore a void puo' essere assegnato
qualunque valore di puntatore, ad un puntatore a qualunquetipo puo'
essere assegnato solo un puntatore allo stesso tipo o a void (ma una
volta generava warning). 0 (zero) puo' essere assegnato a qualunque
puntatore e assume significato di puntatore nullo e in vari header
standard e' definita la macro NULL
# define NULL 0
(banale raccomandazione: solo 0 puo' essere assegnato a un puntatore,
non un int che vale 0)
Il codice che stai esaminando probabilmente e' stato scritto da uno
che usava un compilatore che generava warning se non rilevava
identita' di tipi tra puntatori e per non averne ha definito una
nuova macro NULL tipizzata, appunto NULLAACC.
Tutti i puntatori tipo
struct acc_frg * p_struct
a cui viene assegnato NULLAACC verranno settati a quel valore, ma
NULLAACC
non e' compatibile con altri tipi di puntatori a causa del cast
esplicito.
Il senso non lo capisco. Io ho sempre usato solo NULL.
ciao.

Sei stato fantastico, grazie.  ;-)
Confermo il fatto che il programma ha "particolarità" in modo da poter essere
compilato senza errori o warnig con qualsiasi compilatore.
Newsgroup: it.comp.lang.c
Titolo: Metodo di cramer

Chiedo se qualche buon'anima sappia dove posso recuperare le sorgenti di un
programmino che risolva dei sistemi attraverso il metodo di cramer, in
quanto devo implementarlo in un programma che sto gia facendo...
grazie a chi mi puņ aiutare
ciao!

 quanto devo implementarlo in un programma che sto gia facendo...
Ad es.
http://www.math.wustl.edu/~ben/ch12p2.c
Tieni presente che questo approccio ha pessime prestazioni per sistemi di
dimensione non minuscola, vedi la riassuntiva analisi a:
http://www.math.uic.edu/~hanson/mcs471/cramers.html
che si riassume in "non pensare neppure a usare la regola di Cramer per
n>4".
Alex (MVP di Brainbench per il C++)

 quanto devo implementarlo in un programma che sto gia facendo...
Lascia perdere il metodo di cramer. Ha complessità O(n!), in pratica
significa che più è grande la matrice più vecchio ti fai per avere la
soluzione. Prova a cercare Numerical Recipes in C su internet, è scaricabile
gratuitamente. C'è la spiegazione di come effettuare la gaussian elimination
con fattorizzazione LU, il metodo più veloce per la risoluzione di sistemi
lineari a matrice dei coefficienti piena.
Ciao,
Fulvio

 ciao!
Se ti interessa comunque il metodo di Cramer io ho scritto una funzione in C
(non commentata) che implementa il calcolo del determinante con la regola di
Laplace e una funzione che calcola l'inversa.
Fammi sapere e se vuoi te lo invio.
Antonio
ps come hanno fatto notare gli altri č un metodo *molto* pesante ma comunque
vedi tu

Newsgroup: it.comp.lang.c
Titolo: AIUTO DI NUOVO (visto che mi siete stati utilissimi)

Grazie di nuovo per l'ultima volta...
cmq ho un'altro quesito forse anche un po stupido:
MI SERVE UNA FUNZIONE EQUIVALENTE AL Keypressed del pascal in C
cioe che mi dia 1 se e' stato premuto un tasto 0 se non e' stato premuto
nessun tasto senza bloccare l'esecuzione del programma...
Grazie.
 |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
 | MANIAK - 
rtra...@hotmail.com
 |
 |________________________________|
 

 nessun tasto senza bloccare l'esecuzione del programma...
Sempre dipendente dal compilatore.
inkey() ? keypressed() ? kbhit() ?
--
Alessandro Monti

 nessun tasto senza bloccare l'esecuzione del programma...
Standard non esiste. Nei compilatori Borland per DOS di solito trovi
kbhit().
EMG

inkey() ? keypressed() ? kbhit() ?
La libreria conio.h sotto DJGPP/Borland C++ supporta kbhit()
--
Andrea Laforgia
andrea_...@bigfoot.com

Newsgroup: it.comp.lang.c
Titolo: Alberi binari

Ciao Ciao!!
Sto cercando aiuto per scrivere un programma in C++ sugli alberi
binari.
Mi son bloccato sulla cancellazione dei nodi, della radice e dei
figli...
qualcuno ha delle soluzioni???
Grazie a tutti!!
Roberto

 binari.
...credo che tu abbia confuso gruppo: probabilmente volevi postare su 
it.comp.lang.c++
Ciao
-- 
Cybertoldo
Per rispondermi via email, sostituisci moc.liamg con 
gmail.com
Newsgroup: it.comp.lang.c
Titolo: "fopen" che non fa open


L'istruzione e' giusta. Non vedo motivo perche' non debba funzionare. Sei
sicuro che "nomefile" sia un formato di nome di file ammissibile per il tuo
sistema? Ciao Paolo
-----------== Posted via Deja News, The Discussion Network ==----------
http://www.dejanews.com/
       Search, Read, Discuss, or Start Your Own    




 >
-----------== Posted via Deja News, The Discussion Network ==----------



Non sei il solo ad avere questo problema, mi ci sono
imbattuto anch'io. Se può consolarti:
Lo stesso programma compilato o eseguito su macchine
diverse da' sempre un risultato diverso.
E' uno dei (tanti?) misteri irrisolti del mio passato.
Se qualcuno potesse indicarmi la causa gli sarei
eternamente grato.
Ciao!
P.S. Prova a compilarlo con un diverso compilatore.




Newsgroup: it.comp.lang.c
Titolo: Passare ***argv come parametro da modificare!??

void dir(int argc, ***argv);
buff e' solo un array di caratteri. Prova a dichiarare dir come
void dir(int argc, *argv);
Saluti,
    Mardy

 void dir(int argc, *argv);
no, non funzionava...
cmq sono riuscito a correggere il problema  dichiarando un puntatore al
buff:
char *buff[1];
ma risolto uno se ne presenta un'altro!
Quando chiamo sempre quella maledetta funzione dir(argc, **argv),
mi và in segmentation fault.  :(
Non capisco se sia il *buff[] che gli passo che non è compatibile con la
dichiarazione della funzione dir(int argc, char **argv)) o altro..
grazie

mi và in segmentation fault.  :(
A questo punto dovresti proprio postarla; ricordati che comunque scrivere
funzioni troppo lunghe e' molto spesso sconveniente (nonche' evitabile)!
Saluti,
    Mardy
Newsgroup: it.comp.lang.c
Titolo: Problema con le struct

Sto facendo un esercizio con i vettori di strutture, ma ho problemi quando
devo accedere ad un membro che è un puntatore, mi spiego:
#include <stdio.h>
#include <ctype.h>
#include <string.h>
struct key{ /*questa è la struttura*/
 long count;
 char *word;/*ovviamente questo è il membre che è un puntatore ad una
stringa*/
}keytab[]={0,"casa",0,"lavoro",0,"divertimento",0,"studiare"};
#define NKEYS sizeof keytab / sizeof keytab[0]
#define MAXWORD  100
main()
{
 int getword(char *,int);
 int binsearch(char *, struct key *,int);
 char *word;
 int n=0;
 while( (getword(word,MAXWORD) != EOF))
  if(isalpha(word[0]))
   if( (n=binsearch(word,keytab,NKEYS) >=0))
    keytab[n].count++;
 for(n=0;n>=0;--n)
  if(keytab[n].count)
   printf("La parola %s ha %l
occorrenze.\n",keytab[n].word,keytab[n].count);
 return 0;
}
int binsearch(char *word, struct key tab[], int max)
{
 int high, low, mid, cond;
 while(low<=high)
 {
  mid=low+high/2;
  if((cond=strcmp(word,tab[mid].word))>0)/*il problema è qui, in fase di
esecuzione ho un errore*/
   low=mid+1;
  else if(cond<0)
   high=mid-1;
  else return mid;
 }
 return -1;
}
int getword(char *word,int lim)
{
 int c,getch(void);
 void ungetch(int);
 char *w=word;
 while(isspace(c=getch()))
  ;
 if(c!=EOF)
  *w++=c;
 if(!isalpha(c))
 {
  *w='\0';
  return c;
 }
 for(;--lim>0;w++)
  if(!isalnum(*w=getch()))
  {
   ungetch(c);
   break;
  }
 *w='\0';
 return w[0];
}
#define MAXBUFF 100
int buffer[MAXBUFF];
int bp=0;
int getch(void)
{
 if(bp>0)
  return buffer[--bp];
 else return getchar();
}
void ungetch(int c)
{
 if(bp<MAXBUFF)
  buffer[bp++]=c;
 else printf("Troppi caratteri.\n");
}
cosa diavolo succede, perchè mai un messaggio di errore. Grazie in anticipo
a tutti.

devo accedere ad un membro che è un puntatore, mi spiego:
Non hai inizializzato il puntatore.
La funzione getword ti dovrebbe restituire nella memoria puntata dal
primo parametro una stringa.  Per fare questo e' necessario che la
memoria puntata dal primo parametro sia allocata (con calloc per
esempio).
Newsgroup: it.comp.lang.c
Titolo: sul sito Djgpp trovo descrizioni file include?

Salve a tutti ,
sul sito 
www.delorie.com
 ? trovo delle descrizioni sui file di header ??
magari c'č qualche altro sito ? potete indicarmi dove?
Grazie  1000
Ciao  :-) Roberto

 magari c'è qualche altro sito ? potete indicarmi dove?

Newsgroup: it.comp.lang.c
Titolo: Aiuto per compilare!

Mi da questo errore:
gcc.exe: installation problem, cannot exec 'cpp0': No such file or directory
(ENOENT)
il programma che ho fatto (immaginate un po'...) l'ho fatto usando un
documento di testo e salvandolo tra apici con estensione c, quindi va bene.
Nella cartella DJGPP ho altre sottocartelle (djdev203,gcc2953b,etc.)
(tengo tutto diviso).
Questo file dove devo metterlo, nella cartella dove c'e' gcc?
Le cartelle delle varie cose che ho scaricato le devo mettere divise oppure
no?
Ho fatto varie prove spostando files, ma sembra sempre che manchi qualche
cosa!
Ad esempio ho spostato il file 'cpp0' e adesso mi dice:
In file included from nomeprogramma.c:0:
djgpp.ver:1: No include path in which to find sys/version.h
Vi prego...
Ho letto pure le faq...
Esiste un tutorial per questo compilatore?
Ciao e grazie.

Devi scaricare tutto in una sola cartella....e poi modificare l'autoexec.
Informazioni su tale compilatore le trovi digitando info gcc in una finestra
dos!
"A.C.Zago" <de...@tiscalinetZZ.it> ha scritto nel messaggio
news:diHw7.1277$g42.1...@news.infostrada.it...

Newsgroup: it.comp.lang.c
Titolo: variabili globali

Ciao a tutti. Riguardo le variabili gloabli, nel libro "Programmare in C",
Aitken e Jones consigliano (almeno fino al capitolo dove sono arrivato io,
cioè l'8°) di dichiarare le variabili esterne alla funzione main(), quindi
gloabli (giusto?). In "C Corso completo di programmazione", i Deitel
consigliano invece di ridurre il più possibile le variabili globali,
tranne quando necessario.
Insomma, secondo voi, è meglio l'approccio di Aitken e Jones o quello dei
Deitel? Voi cosa mi consigliate?

 Deitel? Voi cosa mi consigliate?
  Di non utilizzare variabili globali, o di utilizzarne il meno possibile.
Cmq, se proprio le devi usare, e se hai più moduli, mettile in un ".h" incluso
da tutti i file .c ...
Ciao :-)

"Minguccio" <Ming...@localhost.localdomain> ha scritto nel messaggio
news:slrnbculim.2...@localhost.localdomain...

non usarle.
ciao :)

 dei Deitel? Voi cosa mi consigliate?
La regola è: dichiarare le variabili secondo la visibilità minima
necessaria. Una variabile visibile più del necessario è inutile (se la
usi all'interno di una funzione è superfluo renderla visibile anche alle
altre) e in più potenzialmente dannosa (una variabile globale può essere
modificata da un'altra funzione o assumere un valore che ne influenza il
funzionamento, un classico caso di side effect).
*Consigliare* l'uso di variabili globali è IMHO didatticamente parlando
un delitto.

> non usarle.
Ok, all'unanimità mi avete consigliato di non usarle... :) Mi sa che userò
questo approccio. Grazie!
P.S. Nel mio primo post mi sono espresso male riguardo il consiglio di
Aitken e Jones. *per il momento* si limitano a farle usare globalmente. 
Più avanti nel libro probabilmente consiglieranno proprio ciò che mi 
avete consigliato voi. Sapete, non vorrei fare cattiva pubblicità; mi
stanno pure simpatici. :)

Newsgroup: it.comp.lang.c
Titolo: dal basic al C

Salve a tutti , faccio una domanda sempilce per voi , ma non per me:
in Basic se voglio far stampare una variabile alfanumerica sempre
sulla stessa riga e colonna uso l'istruzione CHAR x,y  A$ , questa
istruzione mi stampa sempre e solo sulla stessa riga/colonna .
In linguaggio C  , qual'è l'istruzione equivalente?
Ringrazio tutti
Ciao :-) Roberto

 wrote in message
8a67df$2ie$1...@lacerta.tiscalinet.it...

Leggi le FAQs, trovi anche degli esempi, in quanto non c'è un metodo
standard per fare ciò che chiedi, dipende dall'ambiente in cui sviluppi.
ciao
Marco
--
Marco Coppo
University Of Sheffield
FAQ del gruppo: 
http://www.programmazione.it/linguaggi/c/itcomplangc.htm

 In linguaggio C  , qual'è l'istruzione equivalente?
Potresti utilizzare \r per riandare all'inizio della riga oppure \b per
tornare indietro di un carattere.
EMG

 In linguaggio C  , qual'è l'istruzione equivalente?
Prendiamo una funzione in c che stampa un output identificativo...
printf("Ciaooo");
se alla fine non ci sarà nessun tipo di terminatore (come il new line \n) le
successive stringhe cerranno stampate sulla stessa riga.
Es
#include <stdio.h>
main()
{
printf("Ciao");
printf(" ");
printf("bello");
printf("\n");
return 0;
}
Newsgroup: it.comp.lang.c
Titolo: funzione 2 output

Salve, sto studiando da poco il c. Devo creare come esercizio una funzione
che mi risolva le equazioni di secondo grado. E' possibile creare in c una
funzione che mi permetta in output due risulati ? Grazie

 ha scritto nel messaggio
news:RRq6e.39234$IN.7...@twister2.libero.it...


Newsgroup: it.comp.lang.c
Titolo: interpretazione di un prototipo

Salve, 
	Leggendo il man di linux (ma risulta essere praticamente
identico anche su Solaris 7) sulla funzione signal mi sono trovato
questo prototipo:
void (*signal(int signum, void (*handler)(int)))(int)
^^^^                                            ^^^^^
  1                                               2
Allora, la parte evidenziata con "1" indica il valore di ritorno, la
parte evidenziata con "2" indica il tipo dei parametri di questa
funzione... ma non riesco a capire esattamente che significa il resto:
mi sapete dare una mano nell'interpretazione?
Paolo 'Mox' Mossino

mi sapete dare una mano nell'interpretazione?
Non c'e' problema.
void ( *signal( int signum, void (*handler)(int) ) ) (int)
funzione che accetta come parametri :
  1. un intero
  2. un puntatore a funzione che accetta un intero e restituisce void.
e restituisce un puntatore a funzione che accetta un int e valore
ritorno void.
--
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: char * arg[4] problema di dimensioni

ciao a tutti
 mi ritovo con un vettore di puntatori a caratteri
 char * arg[4]
 io assegno a questo vettore delle stringhe (Char *)
in arg[1] ad esempio ho Lavoro
in arg[2]     ho casa etc
il mio problema è che durante il corso del programma ho bisogno di
camabiare
arg[1] in ad esempio : supercalifragilistichedespiralidoso
ma l'esecuzione del programma non va a buon fine 
Io credo ci siano problemi per il fatto che nella prima assegnazione
ad arg[1]
gli ho dato anche una dimensione che poi con la seconda assegnazione
vado a superare. cosa posso fare?

 arg[1] in ad esempio : supercalifragilistichedespiralidoso
Non mi è chiaro come compi queste operazioni.
Se il puntatore è allocato dinamicamente e lo valorizzi con strcpy(), 
nella seconda assegnazione puoi ridimensionarlo con realloc().
Se poi commetti altri errori non lo so.

 arg[1] in ad esempio : supercalifragilistichedespiralidoso
#include <stdio.h>
#include <stdlib.h>
void set_string(char **s, char *t)
{
     char *p = realloc(*s, strlen(t)+1);
     if (p) {
        strcpy(p, t);
        *s = p;
     }
}
int main(int argc, char *argv[])
{
    int i; 
    char *arg[4] = {0};
 
    set_string(&arg[0], "casa");
    set_string(&arg[1], "lavoro");
    set_string(&arg[2], "topolino");
    set_string(&arg[3], "paperino");
 
    for (i=0; i<4; i++) 
      printf("a[%d] = \"%s\"\n", i, arg[i]);
 
    printf("----------\n");  
 
    set_string(&arg[1], "supercalifragilistichespiralidoso");      
    for (i=0; i<4; i++) 
      printf("a[%d] = \"%s\"\n", i, arg[i]);
 
    getchar();
    return 0;
}
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

Newsgroup: it.comp.lang.c
Titolo: Offerta di lavoro per SISTEMISTA NT

Euclide Active Training srl ricerca Sistemista NT con maturata esperienza.
I candidati possono inviare dettagliato c.v. a: 
off...@euclide.it
, citando
il riferimento NGSNT.
Luogo di lavoro: Milano.

Direi che questo NG non sia proprio indicato per annunci di questo genere! :-(
Rispettiamoci!

Newsgroup: it.comp.lang.c
Titolo: Consiglio!

Perdonate la mia ignoranza.
Mi interesso solo da poco di programmazione e linguaggio C!
Mi ha molto affascinato!
#Qualcuno potrebbe spiegarmi cosa significa che una funzione restituisce dei
valori?
#Potreste consigliarmi un buon libro(chiaro e completo) per imparare il C?
#Ho gia un manuale di Apogeo scritto da Peter Aitken e Bradley L. Jones ma
purtroppo è chiaro in alcuni punti e completamente oscuro in altri!
Per esempio: in alcuni listati compaiono istruzioni delle quali nel libro
non vi è menzione, l'argomento funzioni e librerie è trattato poco
approfonditamente precludendo la possibilità di capire il loro
funzionamento intrinseco e cosi via!
#Ringrazio anticipatamente chiunque voglia rispondermi!#
Ciao  ^__^

 funzionamento intrinseco e cosi via!
è il libro sul quale mi sono "formato" io... sinceramente non ricordo 
queste inconsistenze, cmq, a mio giudizio è un libro inutilmente troppo 
prolisso anche se buono. io l'ho letto prima del Kernighan & Ritchie, ma 
devo dire che quest'ultimo nonostante la sua compattezza è stato molto 
educativo.
ciao.

 ciao.

Newsgroup: it.comp.lang.c
Titolo: Assembler della Microsoft

Salve a tutti e scusate per la richiesta un po OT:
qualcuno sa indicarmi un sito da cui potere scaricare una versione
anche demo del Masm (dalla versione 6.1 in su) ?
Grazie mille a chiunque.
Claudio
cmus...@iper.net
--
Posted from 
ns.iper.net
 [194.21.26.1]
via Mailgate.ORG Server - 
http://www.mailgate.org

via Mailgate.ORG Server - 
http://www.mailgate.org
-- 
Legal Warning: Anyone sending me unsolicited/commercial email WILL be charged
a $100 proof-reading fee.  Do NOT send junk email to me - consider this an 
official notice:
"By US Code Title 47, Sec.227(a)(2)(B), a computer/modem/printer meets the
 definition of a telephone fax machine.  By Sec.227(b)(1)(C), it is unlawful
 to send any unsolicited advertisement to such equipment.  By Sec.227(b)(3)(C),
 a violation of the aforementioned Section is punishable by action to recover
 actual monetary loss, or $500, whichever is greater, for each violation."

anche demo del Masm (dalla versione 6.1 in su) ?
Ora il Masm e' gratis e distribuita nel ddk98, fai un salto qui:
http://www.microsoft.com/hwdev/ddk/ddk98.htm
Il file e' lungo 18 mega ...
... ma ci trovi il masm !
Saluti,
Pierluigi

Newsgroup: it.comp.lang.c
Titolo: Mancato passaggio argomenti a funzione

Ultimamente ho scoperto di avere un sospetto brutto andazzo di chiamare 
le
funzioni senza passare argomenti del tipo invece di:
var = funct( arg1, arg2 )
scrivo
var = funct
come se fosse una variabile, ed il bello è che pure funziona! O 
meglio... parte, poi se va bene si incarta,
se non va bene... chissà quando me ne accorgo :P
Utilizzo gcc e vorrei sapere se esiste una -W particolare per stanare 
questo tipo di "errore".
(Ma se non gli indico nulla che gli passa? NULL? o quello che gli 
capita a tiro?)
Un grazie in anticipo :)
Tetradom
--
http://utenti.lycos.it/RPGfantasy/
Inviato da 
www.mynewsgate.net

 Tetradom
Ciao
Matic
Newsgroup: it.comp.lang.c
Titolo: Conversione STR  to HEX

Salve,
esiste un metodo per convertire dei codici esadecimali in intero da una
stringa ?
Per esempio "4F" -> 79
Per fare cio' mica devo prendermi carattere per carattere e convertirlo ?
Ho provato con atoi ma non va...
grazie
xoooox
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 Ho provato con atoi ma non va...
Leggi la documentazione di strtol().
Ciao.

sempre rimanendo nella cetegoria stringhe..
qual'e' quel procedimento che mi trasforma una stringa(intesa come
array di char)in una stringa di valori esadecimali?
cioe' mi spiego meglio un convertitore che codifiva ogni carattere in
esadecimale e poi li concatena allo stesso ordine?
Grazie mille
e ciao


Se ho capito bene vorresti una stringa contenente le 
rappresentazioni esadecimali di ciascun char presente nella 
stringa originaria.
Devi tener conto che un char ha dimensione 1 byte, quindi 2 
nibble, quindi devi prima allocare una stringa lunga il doppio 
di quella originaria. Poi puoi scorrerla come array e 
"stampare" ogni char come esadecimale con sprintf() nella 
nuova stringa.
Esempio:
unsigned char *s="abcdef";
unsigned char d[13]={0};
int i=0;
while(*(s+i) != '\0') {
    sprintf(d+(i*2),"%2X",*(s+i));
    ++i;
}
Ciao.


printHex(const char *s) {
  for (;*s;++s)
    printf("%X",*s);
};
E.

Newsgroup: it.comp.lang.c
Titolo: OT :E' bello sapere che e' Natale

Ciao a tutti.
Il Natale mi ha portato tanti doni, anche dal NewsGroup.
Devo dire grazie, infatti, al microcefalo che, in risposta alla mia
domanda sul Goto, mi ha mandato uneseguibile, scrivendo
"Questo e' proprio giusto per te"
Grazie, brutto stronzo, (scusate).
Il motivo per il quale lo hai fatto lo ignoro, come ignoro il perche'
persone come te respirano aria, alla faccia di chi ha diritto di
vivere.
Il NG da quello che mi risulta e' una comunita' basata su un
interesse, dove si cerca e si presta aiuto.
Non vedo che aiuto mi hai dato a inchiodarmi il sistema dolosamente.
Purtroppo sono ancora qui, ansioso di condividere la mia passione per
l'informatica con tante persone piu' serie e umane di te.
Auguri di Buon Natale, comunque.
Igor Rossetti
PS Sto parlando con 
tor...@libero.it

 wrote in message 385313e8...@news.libero.it...


l'informatica con tante persone piu' serie e umane di te.
pare ci sia in giro un tizio che si diverte con queste cose, il mio
consiglio e' di farsi una bella stampa del messaggio con tutti gli
header ed inoltrare denuncia alla P.S.
diffondere virus e' un reato
Aranar
e-mail: 
ro...@geocities.com
http://www.nettaxi.com/citizens/Aranar/
   (above all VgaPlanets)
http://www.tempolibero.com/user/aranar
    (sopratutto VgaPlanets)
Newsgroup: it.comp.lang.c
Titolo: Ordinare un file di stringhe

Ciao a tutti,
devo acquisire un certo numero di stringhe (circa 100) da file e ordinarle
alfabeticamente. Il quesito è questo: cosa mi consigliate: caricare tutto in
memoria con una bella malloc() e lavorare da lì oppure operare sul file? In
quest'ultimo caso come fareste?
grazie
Marco

Cioa Marco,

  Se le stringhe non sono particolarmente lunghe, caricale tutte in
memoria ed usa la funzione qsort(), altrimenti cerca informazioni
sull'algoritmo "merge sort".
	Alla prossima,
		Marco

quest'ultimo caso come fareste?
Merge Sort, sicuramente.
--
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: interazione con compilatore

Sto scrivendo un programma che deve far compilare ad un compilatore un file
sorgente. La funzione che sto utilizzando per eseguire la compilazione č la
seguente execl, passandogli il path del compilatore ed il file da compilare.
Perņ nei test che ho effettuato non funziona, non riscontrando nessun codice
di errore non riesco a capire cosa c'č che non va. Sapreste indicarmi se
devo porre attenzione a qualcosa in particolare o consigliarmi qualche
valida alternativa. Vi ringrazio

 valida alternativa. Vi ringrazio
Inanzitutto, non hai passato il codice, ed in secondo luogo qui si parla 
di C standard, mentre i tuoi problemi con la execl riguardano POSIX - 
prova su it.comp.os.linux.development
-- 
/**
  * 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
  */

 valida alternativa. Vi ringrazio
Se posti del codice chissà forse qualcuno invece di perdere tempo
a leggerti i file nel tuo pc con il pensiero, ti dà dei consigli
al volo :)
Ciao Max
+-----------------------------------------------------------+
| Secondo alcuni autorevoli testi di tecnica Aeronautica,   |
| il calabrone non può volare, a causa della forma e del    |
| peso del proprio corpo in rapporto alla superficie alare. |
| Ma il calabrone non lo sa e perciò continua a volare.     |
|					     Igor Sikorsky  |
+-----------------------------------------------------------+

#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <windows.h>
int main()
{
    int ct;
    ct =execl("/Programmi/Borland/BCC55/Bin/bcc32", "prova.c", NULL);
    if(ct < 0){
        perror("Non e' stato possibile compilare il file");
        }
    system("PAUSE");
    return 0;
}

     ct =execl("/Programmi/Borland/BCC55/Bin/bcc32", "prova.c", NULL);
la execl vuole come parametri:
execl(path,argv0,arg1,arg2...., NULL);
siccome arg0 corrisponde di solito al nome stesso dell'eseguibile
in corso, (cioe' il bcc32) e il bcc32 si aspetta di trovare prova.c come
argv[1], allora dovresti provare a scrivere:
execl("/Programmi/Borland/BCC55/Bin/bcc32", "bcc32", "prova.c", NULL);
inoltre, visto che sia il programma che scrivi, sia il compilatore
che chiami mi sembra siano Borland, queste domande sono OT qui,
perche' non riguardano il linguaggio standard, ma sue particolari 
estensioni,
quindi per le prossime questioni ti invito (nel tuo interesse)
a rivolgerti ai gruppi di news che trattano esclusivamente
del compilatore borland.
Essi si trovano di sicuro nel newsserver della Borland stessa, che
e' di libero accesso. Basta che ti colleghi al server news
newsgroups.borland.com
e i gruppo rilevante per le  tue domande sara' forse
borland.public.cppbuilder.language.cpp
ciao,
g.

Vi ringrazio, comunque mi avete aiutato a risolvere il problema.
Ciao a tutti