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

Domanda banale..
scrivere:
    int a=0;
    int b=1;
    int c=6;
equivale a scrivere:
    int a=0,b=1,c=6;
Se sě perchč??
Grazie


certo che č uguale...
non c'č un perchč.. le due stringhe sono interpretate nello stesso modo dal
compilatore.. (precompilatore forse.. vero?)

> compilatore.. (precompilatore forse.. vero?)
Compilatore.
 I compiti del preprocessore riguardano per la maggiore la risoluzione delle
macro.

a! pensavo allocasse anche la memoria, grazie!

 non c'č un perchč..
C'e' sempre un perche': lo standard prevede che le dichiarazioni possono
essere fatte in entrambi i modi.
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Newsgroup: it.comp.lang.c
Titolo: Server UDP

allora...devo scrivere un server UDP in C, piattaforma Linux x86.
socket() torna un valore >0, e bind() 0, segno che č tutto ok.
ma la recvfrom() torna immediatamente -1 e errno viene settata a 9 (Bad
File Descriptor), come se sd non fosse stata inizializzata da socket() !!
che sta succedendo? qualcuno cortesemente mi puo illuminare??
ecco il mio codice, ripulito delle cose non necessarie:
int main(int argc,char **argv) {
    struct sockaddr_in clientAddr,serverAddr;
    char buffer[100];
//creazione socket
    int sd=socket(AF_INET,SOCK_DGRAM,0);
    serverAddr.sin_family = AF_INET;
    serverAddr.sin_addr.s_addr = htonl(INADDR_ANY);
    serverAddr.sin_port = htons(LOCAL_SERVER_PORT);
//binding
    int rc = bind (sd, (struct sockaddr *) &serverAddr,sizeof(serverAddr));
    while(1) {
        memset(buffer,0,sizeof(buffer));
        int addrLen=sizeof(clientAddr);
//torna -1, perchč??????
        int bytes=recvfrom(sd,buffer,sizeof(buffer),0,(struct
sockaddr*)&clientAddr,&addrLen);
    }
}
grazie mille!
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

scusate...aggiungo anche che la porta è > 1024 e che il programma dà lo
stesso errore anche se eseguito da root!


 
  it.comp.os.linux.development

veramente pensavo che riguardasse di piu il c che linux...


 veramente pensavo che riguardasse di piu il c che linux...
E invece no. Con linux c'entra abbastanza, con il C standard 
assolutamente nulla. Peccato.
-- 
Mat/tia Belletti - Graduate student @ 
cs.unibo.it
ICQ: 33292311    - email: 
mbel...@cs.unibo.it
IRC: RedGlow     - site(s): 
http://mbellett.web.cs.unibo.it/
Jabber: RedGlow  - Linux registered user 299762 @ machine 213003

 veramente pensavo che riguardasse di piu il c che linux...
Se il problema è il C, prova a riscriverlo in Pascal, magari funziona.
--
Cingar


 veramente pensavo che riguardasse di piu il c che linux...
Il C standard non sa manco dove stanno di casa i socket.
-- 
[ RiK0                                ]
[ non credo negli schemi non vincenti ]
[ two is an odd prime number          ]
Newsgroup: it.comp.lang.c
Titolo: Da elenco a Variabili

Salve, ho un elenco di nomi in un file
come utilizzo il comando fgets per associare ogni nome ad una variabile?
non riesco proprio a risolvere :(

 Tutor at D.S.I. University of Milan
V_/_ 'The future will not remember, the past doesn't forget.'
I'm Linux zion 2.4.0 #4 Thu Jan 11 15:33:34 CET 2001 i586



fgets legge il file un record alla volta, se i nomi sono uno per
riga...
altrimenti se esiste un separatore un (blank, una virgola, ecc) ti
leggi tutto il file in un buffer e poi lo scandisci con 
strchr(buffer, caratteredacercare)
che ti restituisce il puntatore al primo carattere che trova
stacchi il nome da buffer e ricominci finche' hai un po' di buffer da
leggere
(che analisi !!!)
ciao.

 }
Se al posto di più variabili separate, volessi usare un array char? come 
dovrei fare? :)
grazie 

 grazie 
Nulla


         while(!feof(apri))
L'ultima linea del file viene letta due volte.
while (fscanf(...) != EOF) { ...
-- 
Maurizio Loreti                         
http://www.pd.infn.it/~loreti/mlo.html
Univ. of Padova, Dept. of Physics - Padova, Italy            
lor...@pd.infn.it
The instructions said to use Windows 98 or better - so I installed FreeBSD.

Che dire, grazie ancora :)
Newsgroup: it.comp.lang.c
Titolo: puntatore costante ad un char

Ciao a tutti,
da "Thinking in C" (Mindview):
char* const p2;
*p2 = 'c'; //OK
//++p2;  //this is illegal;
che significa, almeno credo, che ho un puntatore costante ad un valore 
char. Ora, dopo aver compilato senza problemi, quando vado ad eseguire 
il programma "schianta" alla riga:
*p2 = 'c';
e mi da "errore di segmentazione" (sto debuggando con Dev-C++).
Avete qualche suggerimento?
Grazie in anticipo,
Giulio
-- 


Penso che quello sia solo un esempio per farti capire il 
concetto. Il motivo per il quale il programma si schianta è 
che p2 non punta a nulla di definito: magari una locazione 
read only a caso in memoria o in cui sono già presenti altri 
dati necessari; per cui nel momento in cui tenti di scriverci 
dereferenziando p2 ottieni un errore.
Ciao.

 di scriverci dereferenziando p2 ottieni un errore.
Grazie. Era un mio "sentore" ma non sono riuscito ad investigare più a 
fondo.
Ciao,
Giulio
-- 

 di scriverci dereferenziando p2 ottieni un errore.
Facendo
p2 = malloc(1*sizeof(char));
*p2 = 'c';
non dovrebbero verificarsi problemi, o sbaglio?

 non dovrebbero verificarsi problemi, o sbaglio?
Certo che ci sono problemi! La malloc restituisce un indirizzo 
che non puoi assegnare al puntatore p2 che è costante.
Il modo corretto per fare quello che intendi è:
char * const p2 = malloc(1);
*p2 = 'c';
Ciao.

 *p2 = 'c';
Dichiarazione a parte (che avevo omesso perché visto che si stava
parlando di un puntatore a carattere dichiarato const mi sembrava
superfluo), cosa c'e' di diverso che mi sfugge?
Ciao!

 superfluo), cosa c'e' di diverso che mi sfugge?
Devi inizializzare al momento della dichiarazione. Stai 
lavorando con una costante. Non puoi dichiarare la costante e 
inizializzarla separatamente in un secondo tempo.
Ciao.

 separatamente in un secondo tempo.
Non lo sapevo, grazie!

Newsgroup: it.comp.lang.c
Titolo: di nuovo io con un altro problema.. NUMERI REALI

Allora.. l'orale si avvicina e nelle dispense del prof. i numeri reali su
un elaboratore sono qualcosa di incasinatissimo.
chi mi dà una mano(ci spero poco data la richiesta), magari indicandomi un
sito dove sono trattati in maniera chiara?
sempre il solito neoiformatico Vincenzo Antolini
grazie.
--
Automatic posted from 
mail.tin.it
 [194.243.154.49]
via Mailgate Server - 
http://www.mailgate.org

sempre il solito neoiformatico Vincenzo Antolini
Se vuoi ti posso aiutare  :)
Andrea
------------------------------------------------
combatti anche tu il "nano scemo" :
http://www.geocities.com/Hollywood/Studio/6989
------------------------------------------------
Newsgroup: it.comp.lang.c
Titolo: Leggere dati dalla LPT

Salve,
ho bisogno di aiuto per poter leggere dati provenienti dalla LPT1.
Mi spiego meglio:
devo estrarre dati un programma vecchissimo di cui non conosco nulla,
l`unica possibilita' sembra essere quella di richiedere una stampa di questi
dati e collegare , al posto della stampante, un computer che sia in grado di
leggere quello che arriva.
Qundi mi sono procurato due cavi diversi, un laplink e un cavo maschio -
maschio 25 pin diritto,
ho cercato librerie,OCX, sorgenti o programmi che mi permettessero di
leggere i dati.
Il problema e' che se attacco il computer al posto della stampante  il
vecchio programma mi
riporta un errore di carta mancante nella stampante (evidentemente i
programmi sopracitati non
simulano tutti i bit che invece una stampante ha, oppure i cavi non vanno
bene)
Quindi sono a chiedervi aiuto e nella speranza che possiate fare qualcosa vi
saluto Marco.


quello che hai intenzione di fare è fattibile, ma IMHO pazzesco.
se hai la possibilità ti converrebbe invece pensare di intercettare i
dati inviati alla parallela al programma in questione, senza dunque
usare un altro pc, ma scavalcando il prg, e intercettare come dicevo i
dati prima che li invii alla parallela.
per la sol. che dici tu, secondo me è fattibile, ma è davvero
difficile, perchè dovresti creare un prg che emula una stampante, e non
è cosa da poco interfacciarsi così a basso livello alla parallela, e
cmq rinuncia a ocx, non ne troverai per quello che vuoi fare tu.
-- 
Real name: Fabrizio Chiarello		    | a Debian GNU/Linux "Woody" 
Nickname:  ciccotto/ckk8/ponch		    | is running on Linux 2.4
e-mail:	   
fchia...@inwind.it
             |     because Linux rulez 
GPG Key fingerprint = DD50 3859 67E9 5383 7799  8093 59F2 736E 32CE 0C6D
Newsgroup: it.comp.lang.c
Titolo: Altri Problemi con Scanf!!

Dopo aver letto la discussione di qualche giorno fa sulla scanf(), ho avuto
questi spiacevoli problemi che apparentemente non capisco da cosa derivino.
Provo a leggere una stringa con scanf() leggendo fino a che non incontro il
caratter '\n'. Apparentemente è tutto ok, però se provo a leggere una
seconda scritta, la scanf() mi ritorna 0!
Non riesco a capire perchè non funziona! Ho provato la compilazione sia in
Win, Linux che FreeBSD. Purtroppo la pagina di manuale non fa riferimento a
questo problema e nessun testo che ho sul C mi da tale documentazione.
Ho provato anche a variare i parametri della scanf() da %[^\n] a %[%\n]s,
ecc ma nn sono riuscito a rileggere la seconda scritta!
Naturalmente se uso la get() è tutto ok, ma visto i problemi di sicurezza
sono costretto alla scanf().
Ciao
Andrea
/* Prova */
#include <stdio.h>
int main () {
     char buffer[100];
     int i;
     printf("Scrivi Qualcosa\n\n");
     i=scanf("%[^\n]s", &buffer,90);
     printf("\n\nTu hai scritto:%i\n%s\n",i,buffer);
     printf("Scrivi Qualcosa\n\n");
     i=scanf("%[^\n]s", &buffer,90);
     printf("\n\nTu hai scritto:%i\n%s\n",i,buffer);
}
__________________________________________________________________
 Andrea ICQ#: 56390764 Current ICQ status: + More ways to contact me
__________________________________________________________________

Scusate mi sono dimenticato di aggiungere che se al posto della seconda
scanf() metto la gets() il programma continua a non funzionare.
ciao andrea


 }
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
Ci sono due cose che l'uomo non puo` nascondere:
essere ubriaco ed essere innamorato.

 ha scritto nel messaggio
news:ad8c34$84c$1...@dreamland.darkstar.net...

Newsgroup: it.comp.lang.c
Titolo: Configurazione "globale"

Non vi stracciate le vesti, ma ho un paio di variabili che dovrebbero
essere viste da più moduli del programma (sola lettura).
Pensavo addirituttura di fare qualche funzione
leggi_x
leggi_y
setta_x
che le prende e all'inizio le scriva su file in un qualche formato.
Se il formato è definito astutamente poi riesco a leggere in sicurezza
dappertutto.
Ma forse non ne vale la pena, se dichiaro
--8<---------------cut here---------------start------------->8---
static int x;
static int y;
// e vari set/get
--8<---------------cut here---------------end--------------->8---
in un file separato e le setto all'inizio ottengo lo stesso risultato, giusto?

Una cosa di questo genere ha senso?
In teoria se tento di assegnare due volte qualcosa l'asserzione si
incazza...
--8<---------------cut here---------------start------------->8---
#include <stdlib.h>
#include <string.h>
#define FD_NOT_SET (-1)
#define TUN_NAME_NOT_SET ""
static int tun_fd = FD_NOT_SET;
// use another size
static char tun_name[10] = TUN_NAME_NOT_SET;
int getFd() {
    return tun_fd;
}
void getTunName(char *name) {
    strcpy(name, tun_name);
}
void setFd(int fd) {
    assert(tun_fd == FD_NOT_SET);
    tun_fd = fd;
}
void setTunName(char *name) {
    assert(tun_name == TUN_NAME_NOT_SET);
    strcpy(tun_name, name);
}
--8<---------------cut here---------------end--------------->8---


tradotto:
static char tun_name[10] = "";
void set() {
    if (tun_name=="")
        /* .. */
}
vedi l'errore? ;-)
Ciao!

 Ciao!
Eh forse che non si può fare quell'uguaglianza?
Anche io lo pensavo ma stavolta il compilatore anche con -WExtra non si
lamentava quindi pensavo andasse...
Newsgroup: it.comp.lang.c
Titolo: Grafi e ricerca

Ragazzi ho bisogno del vostro aiuto .
Ho letto quanto è in mio possesso sui grafi e sulle visite in profondità e
in ampiezza , ma non sono riuscito ancora a capire come operare per
risolvere il mio problema.
Il problema sta ne trovare il percorso minimo all' interno di un grafo.
Mi sono sorti questi dubbi :
Come si deve rappresentare il grafo?
Quale algoritmo devo usare per trovare il percorso minimo tra due nodi?
E per trovare cicli?
Esistono siti che mi possono formare-informare sull' argomento (anche in
inglese ) ?
L' esame si avvicina e la paura comincia ad avere il sopravvento !
Ringrazio tutti.

inglese ) ?
Questo non mi pare male (per le descrizioni degli algoritmi)
http://hissa.nist.gov/dads/terms.html


 inglese ) ?
http://ioi.dsi.unimi.it
trovi una dispensa sull'algoritmo di Dijkstra.
Ciao Anto
-- 
Antonio Cuni, 19 anni, studente
Brainbench C++ Master: 4.6, higher than 98% of all previous test takers.
C Language: 3.32, higher than 79% of all previous test takers.
Guida C/C++ di Programmazione.it: 
http://cpp.programmazione.it

 adiacenza).
A me risultava che tramite liste di adiacenze la complessita' fosse circa 
O(N logN): mi fai un esempio di quando raggiunge complessita' cubica?


Anto
Paolo :)

 entrambe le versioni].
L'algoritmo di Dijkstra e' una specializzazione della ricerca 
priority-first: la sua implementazione piu' semplice e' quella attraverso 
una coda con priorita', e te la riporto in pseudo-codice:
utilizzo le pseudo-funzioni push(nodo,priorita'), pop() e empty() che 
gestiscono una ipotetica coda con priorita'
push(nodo_di_partenza,0)
while( !empty() ) {
        nodo_corrente=pop()
        (per ogni arco uscente a) {
                push(a, peso_a)
        }
}
Questa e' la versione ultra-semplificata che fa vedere solo le operazioni 
base: considerando che le operazioni su una coda con priorita' sono 
eseguite in genere in O(logN) si vede che la complessita' totale e' circa 
O(N logN).
Ad essere piu' precisi Sedgewick indica queste complessita':
liste di adiacenza: O( (E+V)logV ) : efficiente in presenza di grafi sparsi
matrici: O(V*V): efficiente in presenza di grafi densi
Ciao Anto


Mox wrote:


Ciao Anto
Mox :)

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

 In realtà però esso è semplicemente AG.
infatti, e l'algoritmo lo determina direttamente. Anche se prima visita 
altri nodi il cammino resta sempre AG: non devi confondere il cammino sul 
grafo con quello sull'albero di ricerca.

Newsgroup: it.comp.lang.c
Titolo: buffer overflow

qualcuno mi puo' spiegare meglio come si sfruttano e come si riconoscono i
buffer overflow ?
grazie!

 sfruttano e come si riconoscono i buffer overflow ?
Come si sfruttano?! Che cosa hai intenzione di fare? quello che penso io?
Lascia stare....
Ad ogni modo sono stati scritti un paio di libri sull'argomento....
Tommy

 buffer overflow ?
http://www.phrack.org/phrack/49/P49-14
http://www.s0ftpj.org/bfi/online/bfi6/bfi6.10.html


Se, invece, vuoi stare piu' sulla ``difensiva'', puoi partire da qui:
http://citeseer.nj.nec.com/wilander03comparison.html
Buono studio,
Marco

grazie a entrambi, vado a leggere un po'

 Lascia stare....
se volessi fare quello che pensi tu userei quella tonnellata di programmi
spazzatura che sono gia' in giro...
Newsgroup: it.comp.lang.c
Titolo: Cerco programmatori per sviluppo motore 3d

Ciao, prima di tutti alcune premesse.
Il progetto che vogliamo realizzare e' sicurmente immenso, quindi non posso
promettere nulla, ma l'idea ce l'abbiamo, siamo per questo progetto
all'incirca una decina tutti appasionati di UO e Rpg.
Comunque quello che sto cercando(astenersi perditempo)sono programmatori
tosti conoscenza per ora 3D, stiamo cercando di realizzare usando un motore
3D un gioco a livello di uo.
Quindi skills oggetti da craftare interazione col mondo circostante e
sopratutto un mondo multi player e non di solo 8 pg online.
Se avete una buona conoscenza di programmazione 3D
C++ e vi e' piaciuto UO allora scrivetemi un email
a 
rear...@hotmail.com
Abbiamo bisogno urgente, inoltre ho gia un hosting pronto ad ospitarci.
Per ora non ci sono profitti ma in futuro chissa.
Quindi cosa aspetti se sei un programmatore esperto scrivimi e vorrei sapere
cosa hai realizzato.
Ho diversi 3d engine open source , poi decideremo quale pensiate sia meglio.
Questo progetto e' iscritto a SourceForge ed ora ha una mailinglist, per chi
si vuole iscrivere, Solo chi ha ottime conoscenze in c++ e sviluppo motore
3D.
3drpg-s...@domeus.it
Basta inviare un msg vuoto a questo indirizzo

 realizzare usando un motore 3D un gioco a livello di uo.
ma usarne uno opensource, oppure partire da li' e realizzare il vostro?
di sicuro fareste prima...

3D.
Ma un consiglio te lo voglio dare: Crystal Space, usando le OpenGL.
Mox

Newsgroup: it.comp.lang.c
Titolo: Op. ? e if

Ma l'operatore ? è più veloce di una corrispondente istruzione if?
L'unico vantaggio non sarà mica il tempo risparmiato a scrivere il prog?!
Come operandi di ? non ci possono essere delle istruzioni(neanche blocchi,
suppongo...), e espressioni con altri ?, invece?
Grazie
--
Marco Iannaccone
ICQ: 18748121
IRC: Tolkien
e-mail: 
captai...@ussvoyager.com

, e espressioni con altri ?, invece?
Si', perche' esse a loro volta producono "rvalue" :
Si puo' trasformare una funzione min() del genere :
int min ( int x, int y, int z )
{
    if ( x < y )
    {
       if ( x < z )
          return x ;
       else
          return z ;
    }
    else
    {
       if ( y < z )
          return y ;
       else
          return z ;
    }
}
in :
int min ( int x, int y, int z )
{
    return ( x < y ) ? ( x < z ) ? x : z : ( y < z ) ? y : z ;
}
Ma non so fino a che punto convenga ;) ...


? : e' un'espressione, cioe' denota un *valore*. If invece e' una
struttura di controllo, cioe' denota un branch del flusso di 
esecuzione.
Tutto qui. :) 
-- 
God is Real, unless declared Integer.

 "?:" e' davvero di scarso interesse...
Io invece penso che se sia conveniente cercare di porre attenzione a questo
genere di cose (tipo tenere conto dello short circuiting quando si usa || o &&,
o ancora badare all'ordine dei CASE in SWITCH), tanto, tutto sommato, non ci
costa granche' di fatica...
Giorgio.

costa granche' di fatica...
Questi sono altri tipi di questioni.
Lo short-circuiting e' un'ottimizzazione evidente in un controllo.
Newsgroup: it.comp.lang.c
Titolo: visto che ci siete..

Il problema č cambiato rispetto a prima... non riesco a far funzionare
rename(s1,s2)...
la funzione č ok ma funziona solo se io non ho mai aperto un file con
fopen(), altrimenti no... non pare gli freghi niente dei miei fclose()....
tutto ciň č assai strano...

Come non detto... per errore ripetevo 2 volte fopen sullo stesso file e
questo incasinava tutto...
Chiedo scusa

Newsgroup: it.comp.lang.c
Titolo: HELP! : Ritornare un puntatore a una struttura

Ragazzi salve,
ho bisogno di una mano.
Sto tentando di farmi restituire da una funzione un puntatore a una
struttura :
Solo che mi va in segmentation, forse sbaglio qualcosa.
esempio:
#include <stdio.h>
#include <stdlib.h>
typedef struct ciao{
	int a;
	int b;
}CIAO;
CIAO *prova(){
	CIAO *c;
	c->a=10;
	c->b=20;
	return c;
}
int main (void){
	CIAO *ba;
	ba=prova();
	printf("%d",ba->a);
} 
Grazie in anticipo,
Ivan

 	printf("%d",ba->a);
Devi allocare memoria per l'oggetto che stai usando:
CIAO ba;
CIAO *ba = malloc(sizeof(CIAO));
una delle due...se usi la seconda, devi rilasciare la memoria

OOps che tordo ^_^.
Grazie Alter...
Cmq ,apparte l'allocazione, è tutto corretto ??? , è il modo piu
comodo per farsi restituire un puntatore a una struttura ??
cmq se alloco tramite "CIAO ba", quando assegno "ba=prova()",
non dovrebbe dare un errore per incompatibilita di di assegnamento ??
AlterX ha scritto:


 non dovrebbe dare un errore per incompatibilita di di assegnamento ??
infatti non devi allocare CIAO ba.
Questo come puntatore va bene...
in prova() devi allocare la memoria dinamicamente o se vuoi evitare di
deallocarla o non devi creare piů istanze diverse, puoi usare:
static CIAO tmp;

Newsgroup: it.comp.lang.c
Titolo: Libreria Math -- Linking

Salve,
	il seguente codice:
#include <math.h>
#include <stdio.h>
main()
{
	double x, y=4.0;
	x=pow(y, 2);
	printf("X= %f\n", x);
}
% gcc nome_file.c
compilato produce il seguente errore:
/home/jancos/.tmp/ccgiDz8T.o: In function `main':
/home/jancos/.tmp/ccgiDz8T.o(.text+0x25): undefined reference to `pow'
collect2: ld returned 1 exit status
che è un evidente errore di linking. Quale libreria dovrei dichiarare in
fase di compilazione?
Grazie.
P.S.: rispondere anche in privato. Grazie.
-- 
                      >////////<
                      / *  * /
                     /   <  /
__________oOOo______/______/_____oOOo_________
    (°>     Giovanni Costagliola   (jancos)
    //\     mailto:
jan...@technologist.com
    V_/_    
http://digilander.iol.it/jancos
______________________________________________
              /      /
             /      /
            (      (    ______
             \      \  /     /#####*** *  *    *
              \      \/     /####*** *  *
               \           /###*** *  *    *
                \         /##*** *  *
                 \_______/#*** *  *    *

 % gcc nome_file.c
	$ gcc [tuoi_parametri] -lm
	Alla prossima,
		Marco
Newsgroup: it.comp.lang.c
Titolo: Algoritmo calcolo combinatorio.

Ciao a tutti. Sono alla ricerca di un algoritmo che mi calcoli le combinazioni
di m oggetti presi ad n ad n. Quello che cerco non deve essere ricorsivo e
dovrebbe essere particolarmente efficiente.
Grazie,
             Onino

dovrebbe essere particolarmente efficiente.
I possibili sottoinsiemi di m elementi di un insieme con n elementi
sono il coefficiente binomiale:
/ n \        n!
|   | = -------------
\ m /    m! * (n-m)!
Basta che fai questo calcolo e hai finito.
Cordialmente,
Gianni Rondinini, programmer and designer at Pierre s.n.c.
e-mail: mailto:
pie...@mail.asianet.it
homepage: 
http://www.geocities.com/Eureka/Plaza/7153
Red Hat Linux user since 9/25/97
Windows NT Server user since 9/19/97
e-mail: mailto:
pie...@mail.asianet.it


Non credo che volesse il numero di combinazioni, quanto le combinazioni
stesse.
L'algoritmo piu` semplice credo che sia ricorsivo, cioe` scegli un elemento
e applichi la stessa funzione ai rimanenti, controllando che non sia gia`
stata scelta (credo pero` che sia un po' piu` complesso di quello che
credevo).
Comunque, se ti puo` aiutare, puoi ribaltare il problema cosi`: trovare
tutte le funzioni biiettive tra un sottoinsieme di k elementi di N in un
insieme di k elementi.
Questo e` il significato matematico di combinazioni.
Comunque ogni algoritmo ricorsivo si puo` trasformare in uno iterativo (vedi
"Algoritmi in C", non ricordo autore ne` editore), usando uno stack e
l'istruzione "goto" (gia`, proprio quella).
Diceva il testo che e` l'unico modo per eliminare la ricorsione.
    Saluti
   Andrea Perazzolo
 
han...@bandit.sci.univr.it

Newsgroup: it.comp.lang.c
Titolo: Creare dll per applicazione a 64 bit

Tempo fa avevo installato Microsoft Visual Studio c++ per compilare un
piccolo programma in C, creando la relativa dll a linea di comando con
cl -Ipath -LD nome.c -nome.dll
Ora che ho cambiato computer, prendendone uno a 64 bit, devo compilare
una versione a 64 bit della dll, ma ho scoperto che posso compilare
solo a 32.
Qualcuno sa aiutarmi? Non so bene cosa devo installare.

 solo a 32.
Se dovesse servire a qualcun altro, alla fine sono riuscito a
risolvere scaricando, da questa pagina:
http://sourceforge.net/projects/mingw-w64/files/
il file mingw-w64-bin_i686-mingw_20100126.zip
Estratto i files, eseguito ./bin/x86_64-w64-mingw32-gcc.exe
Unico problema, non trovava alcuni files inclusi, e ho dovuto copiarli
nel path di quello principale, sostituendo
#include <jni.h>
con
#include "jni.h"
(e affini).
Però ha funzionato.
Newsgroup: it.comp.lang.c
Titolo: comunicazioni fra ambiente e preprocessore

C'è un modo per fare controllare al preprocessore in fase di
compilazione se la compilazione si sta svolgendo su una determinata
macchina (ad. es. macchina1) piuttosto che su un'altra (ad. es.
macchina2) e quidi prendere decisioni di conseguenza?
Ero in dubbio se questo fosse un quesito per it.comp.os.unix ma ho
pensato potesse essere un problema generale in C. Nel caso chiedo scusa
per l'OT.
    Stefano

 macchina2) e quidi prendere decisioni di conseguenza?
   Non automaticamente. Tuttavia, puoi definire uno piu` simboli di 
preprocessore e programmare quest'ultimo in base ad essi.
<code>
	#ifdef LINUX
	/* does Linux related stuff */
	#endif
	#ifdef WIN32
	/* does MS Windows related stuff */
	#endif
</code>
oppure
<code>
	#if PLATFORM == LINUX
	/* does Linux related stuff */
	#endif
	#if PLATFORM == WIN32
	/* does MS Windows related stuff */
	#endif
</code>
   Un modo per definire questi simboli puo` passare (ma non 
necessariamente: consulta la manualistica del tuo compilatore) dalla 
linea di comando:
	$ gcc -c -DLINUX myfile.c
e
	$ gcc -c -DPLATFORM=LINUX myfile.c
   Altri compilatori multipiattaforma possono definire simboli simili 
internamente.
-- 
Alla prossima,
Marco

Perfetto.
Grazie del suggerimento.
    Stefano
Newsgroup: it.comp.lang.c
Titolo: Conversione

Salve a tutti.......
Vorrei sapere se c'è un metodo per poter prender in input un numero in
notazione esponenziale,
e dare in output lo stesso numero convertito in reale....
E' possibile far ciò??
Spero possiate aiutarmi!!!

#include <stdio.h>
int
main(int argc, char **argv)
{
        float f = 0.0;
        if (argc != 2) return 1;
        if (1 != sscanf(argv[1], "%e", &f)) return 2;
        printf("%f\n", f);
        return 0;
}
Il numero in forma esponenziale lo passi come argomento.
In bash puoi controllare il valore di ritorno stampando il valore di
$?
Se $? e' 1, c'e' stato un errore di argomento
se $? e' 2, la conversione non ha funzionato.


Non son molto pratico del c e della bash.....cosa dovrei fare di
preciso??

Devi copiare il programma che ho scritto sopra in un file con
estensione .c
Lo compili con il tuo compilatore C preferito in un eseguibile.
Lo lanci alla line di comando (il Prompt comandi di Windows oppure un
qualsiasi terminale con una shell sotto unix) passando il numero in
forma esponenziale come primo argomento.
Se l'eseguibile lo chiami nick (o nick.exe), puoi eseguirlo digitando:
./nick 100e-2
oppure
nick.exe 100e-2
Per capire se il programma ha fatto tutto come si deve, testi il
valore di ritorno.
Con bash, il valore si testa stampando $? subito dopo aver eseguito il
comando, in questa maniera:
echo $?
Se ti stampa 0 il programma ha eseguito bene, altrimenti se 1
significa che non hai dato gli argomenti giusti, e se 2 significa che
non e' riuscito a convertire il numero.

        printf("%f\n", f);
Occhio che con printf() c'è promozione dei tipi, quindi in realtà stai
stampando un double.

Lo so. Ma non mi sembra ci siano problemi di portabilita':
scanf riceve un puntatore al float, e si aspetta un puntatore a float
con %f.
Per fargli aspettare un puntatore a double bisogna usare %lf
In printf invece, per via della promozione automatica del tipo, il
float viene convertito a double.
Appunto per questo, printf con %f si aspetta un valore double.

Lo so. Ma non mi sembra ci siano problemi di portabilita'
Non ho mai detto che ci siano problemi di portabilità e riguardo la
promozione dei tipi, mi sembra d'aver detto *esattamente* la stessa
cosa.

 cosa.
Allora possiamo farci una birra! :-)
Offro io!

Ma invece se vorrei stampare a schermo direttamente il risultato dopo
l'esecuzione
come dovrei fare??


Hai provato il programma prima di fare questa domanda?

> Hai provato il programma prima di fare questa domanda?
Scusa il ritardo, ma son stato fuori casa...
Allora il programma funziona....ma due cose:
Con input:./a.out 99.E+4, ho il seguente out:
990000.000000;c'è un modo per eliminare le cifre dopo la virgola??
E poi, come devo fare per dare l'input DOPO aver digitato il ./a.out??
Grazie mille per la disponibilità!!
Newsgroup: it.comp.lang.c
Titolo: i tipi di intero

Mi sembra di avere capito, impiegando <stdint.h>, che:
i tipi di intero: "int8_t", "int16_t", "int32_t", "int64_t"   esistono
i tipi di intero: "int24_t", "int48_t", "int72_t"             non esistono
il tipo di intero: "unsigned int" esiste.
i tipi di intero: "unsigned int8_t", "unsigned int16_t", "unsigned int32_t",
"unsigned int64_t"
non  esistono.
Queste affermazioni sono corrette?
Grazie,
adriano

 non  esistono.
Si' che esistono: uint64_t, uint32_t, uint8_t.
Pleg 

 non  esistono.
Avevo proprio intenzione di postare una domanda analoga.
Lo storico linguaggio C definisce short int, int e long (e le varianti 
unsigned).
La dimensione di questi tipi dipende dall'architettura e dal 
compilatore. short int può essere di 2 byte, int di 4, long di 8. Ma 
potrebbe anche essere short int di 4, int di 4 e long di 8.
La cosa che lo standard impone è che, su qualsiasi architettura, la 
lunghezza di uno short è minore o uguale alla lunghezza di un int che è 
minore o uguale alla lunghezza di un long.
Da un po' vedo i tipi int8_t, int16_t, int32_t, ecc.
Ogni tanto si vedono le varianti __int8_t, __int16_t e in altri casi 
ancora le abbreviazioni u8_t, u16_t, ecc.
Esiste qualcosa di standard a tal proposito nel linguaggio C? Magari 
nella nuova versione C99?
O magari esiste qualcosa di standardizzato negli ambienti tipo Linux o 
POSIX?

 Linux o POSIX?
Il gcc e molti altri compilatori definivano questi tipi da molto
tempo.  Non tutti però usavano questi nomi che in seguito sono stati
standardizzati dal C99.  L'uso di nomi preceduti da "__" (p.e.
__int8_t) dovrebbe essere riservato per usi interni del compilatore.
Ciao
Giovanni
-- 
   A computer is like an air conditioner,
   it stops working when you open Windows.
   Registered Linux user #337974  < 
http://giovanni.homelinux.net/
 >

 standardizzati dal C99.
Ok, quindi esistono obbligatoriamente nei compilatori C99
(includendo stdint.h o anche senza?) e prima sono opzionali.

 (per non perdere spazio)?
A meno di grosse strutture dati è sempre meglio usare int (o unsigned 
int se necessario) per le variabili.  Il compilatore sceglie 
automaticamente la dimensione nativa, generando codice più efficiente 
sia come velocità che come dimensione.

Newsgroup: it.comp.lang.c
Titolo: Modem?

Ciao, qualcuno sa come inviare i codici AT ad un modem tramite un programma
C? Devo fare comporre ad un modem un numero di telefono all'interno di un
mio programma, ma non riesco a trovare il modo di comunicare. Ho provato con
le funzioni in bios.h ma non c'è quello che serve. Sapreste darmi una mano?


FILE *com2 = fopen( "COM2", "w" );
fputs( "ATDT123456\r", com2 );
fclose( com2 );
E' da provare.
EMG


Hoprovato, ma  non funge. Facendo tutto sotto DOS non ho problemi:
copy con com2:
atdt23456
<ctrl+f6>
Ma facendo la stessa cosa in C no!
Cmq grazie mille del sugerimento!.

 Hoprovato, ma  non funge.
Ok. L'ho appena provato. Funziona perfettamente.
EMG

Ok. L'ho appena provato. Funziona perfettamente.
Allora deve esserci qualcosa che on va nel mio compilatore. Uso il borland
4.5 per Windows, creando un eseguibile per DOS con modello di memoria
Medium.
Dirņ la veritą, nel computer dove ho provato ottengo come risposta il
messaggio del dos:
"Tentativo di scrittura su periferica fallito. Riprova, ignora, termina"
o qualcosa del genere.
In un Olivetti M24 non ottengo nulla, nel senso che non succede nulla.
Devo includere qualcosa di specifico, tipo dos.h o bios.h?
Grazie.

 Devo includere qualcosa di specifico, tipo dos.h o bios.h?
No, basta stdio.h.
EMG

Come soluzione fa abbastanza schifo, ma se è vero che ti serve SOLO comporre
il numero...
system("echo ATDT167010278 >COM2");
questa funziona di sicuro.
Cerca nell' help l'header per la system("");
nava ha scritto nel messaggio ...


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

Salve a tutti.
premetto subito che sono nuovo del news group,
oltre a non sapere molto di c e di programmazione in generale.
ho la necessità di gestire connesioni multiple con un protocollo generico
attraverso un programmino in c, da linea di comando, e sotto windows.
Da un po' di ricerche fatte in rete, ho capito che mi devo affidare alle
winsock,
che ho visto essere usate, peraltro, nella verione 2 anche da ws_ftpro 8.
il materiale in circolazione però non è tanto, ed è anche datato.
vorrei dunque chiedervi qualche consiglio in merito,
per buone fonti di materiale, ed eventualmente alternative più recenti, se
esistono,
a parte, chiaramente, altri linguaggi di programmazione.
spesso di essere stato sufficientemente chiaro.
grazie a tutti.
bye ;-)

Le winsock riguardano, per l'appunto, la programmazione sotto windows, 
mentre il linguaggio C (che e' l'argomento di questo newsgroup) non sa 
nulla riguardo ai socket.
Quindi, ti consiglio di postare su it.comp.programmare.win32, dove 
sicuramente potranno essere molto piu' specifici ed esaurienti su 
consigli riguardo alle librerie da adottare e indicazioni su come usarle.
Ciao! :)
-- 
/**
  * 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
  */
Newsgroup: it.comp.lang.c
Titolo: strcpy: errore di compilazione seguendo il  Kernighan Ritchie... che  strano!

Ciao,
Inspirato dal Kernighan Ritchie, pag. 94 (versione inglese) pag. 103
versione italiana, che cmq riporto qui (ho scritto strcp anziché
strcpy ma questo non ha rilevanza),
http://i36.tinypic.com/2py3r0p.jpg
ho scritto il seguente programma:
#include <stdio.h>
#include <stdlib.h>
void strcp(char *, char *);
int main()
{
    strcp("nature", "computer");
	system("pause");
	return 0;
}
void strcp(char *s, char *t)
{
	int i;
	i = 0;
	while((s[i] = t[i]) != '\0')
	   i++;
}
Non dà alcun problema di compilazione: 0 warning, 0 errori
Peccato che quando faccio eseguire il programma, ottengo un messaggio
di errore, precisamente:
Eccezione non gestita: Violazione di accesso nella scrittura del
percorso
Sapreste spigarmi perché?
Grazie

 Grazie
Prego

 Grazie
Stai facendo 2 gravi errore.
Il primo è stai copiando la stringa "computer" nell' area di memoria 
occupata dalla stringa "nature", che è più piccola.
Il secondo è che modificare l'area di memoria utilizzata da una "string 
literal" come "nature", da luogo ad un "undefined behaviour".
Ciao  Manlio Perillo


Il K-R dice quanto sottolineato in giallo a proposito dei vettori di
caratteri:
http://i34.tinypic.com/dqqb7a.jpg
ossia singoli caratteri del vettore di caratteri possono essere
cambiati.
non capisco perché il seguente codice dia problemi all'atto del run
time:
#include <stdio.h>
#include <stdlib.h>
void strcp(char *, char *);
int main()
{
    strcp("computer", "nature");
    system("pause");
    return 0;
}
void strcp(char *s, char *t)
{
    int i;
    i = 0;
    while((s[i] = t[i]) != '\0')
       i++;
}
In fondo è proprio quello che dice il libro K-R !

 Amarok 1.4.10 is airing: Dio - Holy Diver [from: "Holy Diver"]
sorprendente:
Il seguente codice funziona a runtime:
#include <stdio.h>
#include <stdlib.h>
int main()
{
    char v[100] = "prova";
	v[3] = 'a';
	printf("%s\n", v);
	system("pause");
	return 0;
}
e l'output è proaa
Il seguente codice si blocca a runtime !!! Perché ? ?
Grazie
#include <stdio.h>
#include <stdlib.h>
void funz(char str[]);
int main()
{
     funz("nible");
    system("pause");
    return 0;
}
void funz(char str[100])
{
    str[0] = 'a';
}

 }
Questa e' una faq. Piu' precisamente la 6.4 
(
http://c-faq.com/aryptr/aryptrparam.html
)
Ti consiglio di leggerti tutta la sezione 6, riguarda proprio
le domande su array e puntatori.
ciao
Giacomo
Newsgroup: it.comp.lang.c
Titolo: numero in stringa

salve, esiste in C una funzione che dato un numero mi restituisce una stringa?
Grazie

 salve, esiste in C una funzione che dato un numero mi restituisce una stringa?
Tiro ad indovinare...
printf("%d\n", numeroIntero);
printf("Leggersi le specifiche di printf() per gli altri formati\n");
:-)
HTH
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 printf("Leggersi le specifiche di printf() per gli altri formati\n");
forse e' meglio sprintf, cosi' il risultato della conversione va a 
finire dentro ad una stringa.
Ciao.
Stefano.

 
se invece vuoi avere solo il formato stringa puoi usare le funzioni itoa e ftoa 
se non sbaglio ... almeno non usi la funzione printf che e' abbastanza pesante 
se non devi fare un output formattato per terminale ... (e bufferizzato)
ciao

 se invece vuoi avere solo il formato stringa puoi usare le funzioni itoa e ftoa 
itoa() e ftoa() non sono standard. Per convertire un numero in stringa
e' necessario usare printf() con gli opportuni specificatori o, nel
caso sia necessario manipolare ulteriormente la stringa, sprintf(),
come, giustamente, e' stato fatto notare.


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

Ciau a tutti, vogliate scusarmi se con questo messaggio risultassi OT, in
tal caso sarei grato se mi indirizzaste al newsgroup adatto che non conosco
(ho mandato una copia di questo messaggio a it.comp.lang.c,
it.comp.os.linux.development, it.comp.os.linux.software).
Ho qualche domanda relativa alla gestione degli errori e al monitoraggio
degli stessi tramite il system logger. Premetto che da poco utilizzo linux;
al momento uso la distribuzione SUSE 9.0.
Ho trovato in rete i sorgenti di un programma che, nel caso in cui si
verifichi un problema, stampa una riga nel system logger; da questo ho
realizzato un programmino in C molto banale che in base ad alcuni input da
tastiera stampa dei messaggi nel system logger.
Per monitorare il system logger utilizzo la TTY10.
Le mie domande sono:
1) ci sono dei vantaggi nell'utilizzo del system logger piuttosto che
scrivere semplicemente su un file di testo qualsivoglia?
2) esiste un modo alternativo al TTY10 per monitorare il system logger,
magari con tail o qualcosa del genere?
3) alcuni log inviati al system logger non sono visualizzati quando guardo 
TTY10, probabilmente dipende dal level del messaggio; guardando il man
syslog ho notato che ci sono molte opzioni disponibili. Vorrei sapere se
esiste una casistica di opzioni che sono usate piu' spesso e per quali tipi
di messaggi vengono usate.
4) e' possibile monitorare il system logger di una macchina remota collegata
tramite porta seriale?
5) se si, si possono sfruttare i messaggi del system logger di una macchina
remota per compiere eventuali azioni?
Vi ringrazio anticipatamente,
CIAU!!!

 it.comp.os.linux.development, it.comp.os.linux.software).
Qui sei senza dubbio OT. Su icols e icold (e magari anche su icol.sys) 
sei piu` IT. In questo gruppo si usa esclusivamente di C standard: di ANSI
C.
-- 
[ RiK0                                ]
[ non credo negli schemi non vincenti ]
[ two is an odd prime number          ]
Newsgroup: it.comp.lang.c
Titolo: cercasi aiuto su pagamento

Sto cercando qualcuno in grado di fare un programma in C con interfaccia
TCL visto che io ci capisco poco. Si tratta di un simulatore di caduta di
particelle. Chi fosse interessato vada in fondo alla pagina
http://ligwww.epfl.ch/~bcallenn/TPC/
  Project simulateur de particules ( è
tutto in francese)
--------------------------------
Inviato via 
http://usenet.iol.it

cmq... ciao..
studi info al poly..???
io faccio info all'uni.. sempre li a losanna...
Fikata il tp su IK con openGL !!!!
Newsgroup: it.comp.lang.c
Titolo: Sostituzione di comando.

Come inserire in una variabile C lo stdout di 
un'applicazione chiamata con "System"?
 

 un'applicazione chiamata con "System"?
Perchè non redirigere l'output su un file?
Tipo: system("cat file1.txt > file2.txt");
-- 
Non puoi insegnare qualcosa ad un uomo. You cannot teach a man anything.
Lo puoi solo aiutare   --  Galileo  Galilei  --   You can only help him
a scoprirla dentro di sé.                        discover it in himself.
Vincenzo Mercuri

 
Finora ho fatto così. Mi incuriosisce però quel
che ho letto circa stdin stdout e stderr che
sarebbero anch'essi dei file...(stream). Forse
la redirezione è possibile anche tra questi senza
incomodare l' hard disk. Forse.
Io uso Puppy LInux su HD e il passaggio, in
particolare, dovrebbe avvenire tra una Timebox
di Xdialog chiamata con la system e il programma
in C. 
XDialog (e gmessage) mi permettono di dare un 
po' di grafica a quel che scrivo, altrimenti tutto 
sarebbe a grigia linea di comando. 
Saluti.

 con "System"?
Non è semplice.
E non puoi usare system della libreria standard (devi usare le API POSIX, 
grosso modo supportate anche su Windows).
Devi creare una pipe ed un processo, che vedrà la pipe come stdout.
Quindi non devi fare altro che leggere dalla pipe dal tuo processo.
Trovi tutta la documentazione che vuoi su come farlo, in internet.
Ciao  Manlio

 [...]
Ciao  Manlio

 un'applicazione chiamata con "System"?
Posta il tuo problema, non la tua soluzione.
Tu non vuoi fare altro che leggere una pipe: posta la tua domanda
sulle pipe e non farti tante pippe..

 Tipo: system("cat file1.txt > file2.txt");
Cioè vuoi simulare una pipe con un file temporaneo. 
Che bello, siamo tornati ai tempi del PC-DOS!

 sarebbe a grigia linea di comando.
Impara programmare come si deve piuttosto. Rivolgiti a it.comp.os.linux.development

 Che bello, siamo tornati ai tempi del PC-DOS!
Beh, scordati che ti faccio lezioni di programmazione
di sistema come e quando desideri tu.


 altrimenti tutto sarebbe a grigia linea di comando. 
Il mio terminale è verde e giallo.

 
Ha Ha, ridi davanti a questo  8==>

Il giorno Sat, 18 Dec 2010 20:40:57 GMT
Manlio Perillo <manlio_p...@SPAMlibero.it> ha scritto:

Molto bene. Era quello che cercavo (e lo tenevo sotto gli occhi in
<stdio.h>!) . Grazie a tutti quelli che hanno risposto e un consiglio
a qualcuno di limitarsi nello scrivere le solite "parolacce" da
newsgroup. Come al solito la spiegazione trovata in internet
è stata piuttosto ermetica e priva di esempi concretamente
applicabili. In pratica la "popen" si usa come la classica "fopen",
solo che (in lettura) al posto di 
fp=fopen("dir/file","r") si scrive 
fp=popen(" comando di shell /dir/file parametri","r")
A rileggerci e grazie. 
-- 
Qui si usa Linux.
http://www.puppylinux.org
domenica 19 dicembre 2010 (353/12) S.Dario.
Declinazione solare -23,3770° sud. Luna: 13g 6h 31m
Fuji_Sie/hda4
Newsgroup: it.comp.lang.c
Titolo: Quali warning in DJGPP?

     Salve, sono uno studente di C e uso il tool di sviluppo DJGPP su
PC, con interfaccia Rhide 1.4. In Options/Compilers/Warnings vorrei
impostare il livello di warning più alto possibile al fine di ottenere
inizialmente uno stile di programmazione estremamente pulito. Ho letto
l'Help, ma non mi è chiaro cosa in pratica mi convenga fare. Qualcuno mi
può dare, perfavore, un consiglio?
     Grazie,
        Massimo Callegaro



usa 
-Wall -pedantic
ti rompera' le palle fino all'impossibile... ;)

 può dare, perfavore, un consiglio?
Non conosco l'RHIDE ma nel GCC, come parametri nella linea di comando,
si può mettere -ansi -pedantic -Wall.
EMG

prevedono anche un particolare stile di programmazione?
La seconda che hai detto....
-Wall e -pedantic cercano di offrire quegli stessi controlli sul
codice sorgente di un programma come lint, nota utility di checking.

 wrote:
[ snip ]
AL>usa 
AL>-Wall -pedantic
Volendo, si possono aggiungere pure 
-ansi -Werror
Ciao ciao,
Andrea
-- 
"...Unix, MS-DOS, and Windows NT (also known as the Good, the Bad, and 
 the Ugly)."
(by Matt Welsh)

 wrote in message
376B1887...@flashnet.it...

Ho appena scaricato il pacchetto del DJGPP e non ho ancora provato il
compilatore; ma leggendo la vostra risposta mi è sorta una curiosità: le
opzioni wall e pedantic rispettano al massimo lo standard e basta o
prevedono anche un particolare stile di programmazione?
grazie e scusate la domanda idiota
--
San Vegeta from Hell
"...il bugzilla più sgangherato che esista" (La Repubblica)
Newsgroup: it.comp.lang.c
Titolo: aiuto

voglio imparare assolutamente a programmare, a riguardo ho qualche file di
testo che spiega questo mondo ma non mi basta. Cosa devo fare per iniziare?
Ciao! GRAZIE


Talking about music is like dancing about architecture.
                -- Laurie Anderson
Newsgroup: it.comp.lang.c
Titolo: PISCINA PARTY

06/76984938 o al 0338/8693861......e non dimenticare il costume!!!
no, non vengo, mi dispiace, mi aspettavo un C-PARTY...... :-)


Io sarei anche andato ma, sai com'e', sono di Milano e andare fino a
Roma mi sarebbe costato un po' troppo, anche se il cabaret di Nino
taranto e' davvero imperdibile! ;-D
-- 
*******************************************************
       "Dio non e' morto.
        E' vivo e sta lavorando
        a un progetto
        meno ambizioso"
				    graffito anonimo
  Reply to 
bia...@maganet.net
*******************************************************

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

Perchè ad esempio con questo codicillo:
#include <stdio.h>
int main()
{	
	int c, nc = 0;
	while ((c = getchar()) != EOF)
		++nc;
	printf("\nNC: %d\n", nc);
	return 0;
}
al prompt dopo aver digitato per esempio "ciao" devo premere crtl-d due
volte e non una, se prima non premo invio? Alla prima non succede niente, 
alla seconda esce stampando la stringa che ho immesso. Se invece premo
prima invio e dopo crtl-d va tutto ok, tranne che mi conta anche il nl.

 tranne che mi conta anche il nl.
Per togliere in conteggio dei newline puoi banalmente modificare il
ciclo:
while ((c = getchar()) != EOF)
        if (c != '\n')
                nc++;
Altre soluzioni (standard) non  ci sono. L'alternativa e` usare funzione
specifiche per il tuo  OS in modo da avere un  controllo piu` fine sulla
bufferizzazione dell'input.
Kronos
-- 
Home: 
http://kronoz.cjb.net
Do, or do not. There is no try.

Newsgroup: it.comp.lang.c
Titolo: Array su C++ Builder 6

Salve,
ho riscontrato un incongruenza.
Ho creato una classe ed un Array di questa classe di 200 elementi.
Ma mi sono accorto che se richiamo l'istanza 201 il compilatore non mi
segnala nessun errore. Come e' possibile spiegare questa apparente
incongruenza?
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 incongruenza?
Che cosa ha a che fare con il C visto che parli di classi?
Se anche avessi scritto sul ng di C++, cosa ha a che fare con il C++ visto
che parli di Array e non [] o vector?
Credo che il ng giusto sia un ng che parla di prodotti borland oppure uno
che parla di programmazione win32.
Tommy

A prescindere dal classi o non classi, il compilatore è sempre per il
linguaggio C/C++ quindi mi sembra giusto che ne parli qui.
Tant è vero che il tuo problema non è legato ad un ambiente particolare, in
questo caso al C++Builder, ma a qualsiasi compilatore.
Allora il compilatore non si preoccupa se tu fai riferimento ad una
locazione di memoria che è fuori range, perchè si preoccupa di controllare
la sintassi che tu hai utilizzato e questa fase è statica. Se il compilatore
non ti segnala errori, non vuol dire che non ci siano, infatti se eseguirai
il prog ti causerà un blocco del prog o un valore sporco alla lettura di
quella locazione.Ma questo avviene solo in run-time e non nella
compilazione.
--------------------------------
Inviato via 
http://usenet.libero.it