mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c
Titolo: AIUTO: Intercettare tasti F1-12...

 Esistono link che discutono di ciò?
   ncurses.
--
Alla prossima,
Marco



Grazie e 1000 a tutti voi.

Grazie e 1000 del consiglio, ma non volevo utilizzare librerie come le
ncurses, volevo sapere se potevo farlo in c puro senza ausilio di librerie
di supporto.
Grazie.

Paolo,
Paolo wrote:

   No, comunque hai bisogno di una libreria di interfaccia con il 
terminale. A questo punto, ti conviene direttamente utilizzare quella 
che ha il maggior numero di /porting/.
--
Alla prossima,
Marco

Newsgroup: it.comp.lang.c
Titolo: lista errori malloc()

dove posso trovare una lista di codici/errori di malloc() ?
NM

dove posso trovare una lista di codici/errori di malloc() ?
??????
RETURN VALUES
     The malloc() and calloc() functions return a pointer to the
     allocated memory if successful; otherwise a NULL pointer is 
     returned and errno is set to ENOMEM.

 dove posso trovare una lista di codici/errori di malloc() ?
   Non c'e` molto da dire; d'altronde se e` finita la memoria, non 
rimane molto da fare. Se malloc() non riesce ad allocare lo spazio 
richiesto, ritorna un puntatore a NULL. Lo standard Unix98 (e non, 
quindi, l'ISO) prevede che imposti ad ENOMEM la variabile globale errno. 
Se le si richiede una zona di memoria di dimensioni nulle, il risultato 
dipende dall'implementazione. La versione Mac OS X di malloc(), 
sorprendentemente, stampa sul flusso di errore standard un messaggio di 
memoria esaurita.
-- 
Alla prossima,
Marco

Il problema è che il problema non è che esaurisce la memoria!!!!
Il problema è che quando  scrivo in un array allocato dinamicamente
mi modifica i dati di un altro array allocato dinamicamente.......
è un pò complesso da spiegare...
vedi il messaggio di sopra...
il puntatore rilasciato da malloc nonè NULL, ho controllato
NM

Il problema è che il problema non è che esaurisce la memoria!!!!
è un pò complesso da spiegare...
vedi il messaggio di sopra...
il puntatore rilasciato da malloc nonè NULL, ho controllato..
Il run time error esatto è questo:
*** malloc[354]: error for object 0x4d790: Incorrect checksum for
freed object - object was probably modified after beeing freed;
break ad szone_error
Bus error
Inutile dire che nel codice non vi sono free()!!!!!!!!!!!!!!!!
Quando assegno i dati di un array allocato dinamicamente sovrascrive
il contenuto di alcuni nodi di una lista (sovrascrive sia il
successivo PTR sia il dato vero e proprio)
BUG di malloc?!
NM

 BUG di malloc?!
Prima di cercare bug nel compilatore o nel linguaggio li cercherei nel
tuo codice. Postane un pezzo.
--
-=[]=- 
ian...@libero.it
 -=[]=-
Now working... seeh ;-)
Newsgroup: it.comp.lang.c
Titolo: inclusioni

Salve!
Credo mi sfugga qualche concetto di base.
Ho 3 file.
1) main.c , in cui richiamo semplicemente la funzione somma e ne
stampo il valore restituito
2) somma.c, in cui definisco la funzione somma
3)somma.h, in cui compare solamente il prototipo della funzione somma
Eseguo:
gcc -c main.c
gcc -c somma.c
gcc -o Somma main.o somma.o
./Somma
Credevo che il primo passo di compilazione del main avrebbe dato
errore se io non avessi incluso nel main stesso l'header con
#include "somma.h"
e invece tutto funziona allo stesso modo, sia in presenza
dell'inclusione che in sua assenza.
Come è possibile?
Grazie.

 gcc -o Somma main.o somma.o
Ciao
Giovanni
-- 
   A computer is like an air conditioner,
   it stops working when you open Windows.
   Registered Linux user #337974  < 
http://giovanni.homelinux.net/
 >


Non è proprio così. Viene effettuata la "default argument promotion".
Forse volevi dire questo nella prima riga ma poi mi sembra scorretta la
tua seconda affermazione.
Se somma è:
int somma(int a,int b)
{
        return a + b;
}
e non includo il prototipo, allora
short a,b;
int s;
a = 1;
b = 2;
s = somma(a,b); /* promozione a 'int' di "a" e "b" (integer promotion) */
non dà problemi ma ...
long a,b;
int s;
a = 1;
b = 2;
s = somma(a,b); /* nessuna promozione di "a" e "b" */
... potrebbe.
--
Giorgio Silvestri
DSP/Embedded/Real Time OS   Software Engineer

Newsgroup: it.comp.lang.c
Titolo: inviare mail cono account gmail

Ciao a tutti
 
ho un applicazione che invia delle mail notturne, vorrei farla funzionare con gmail nell'xml di configurazione ho inserito
 
    <add key="serversmtp" value="
smtp.gmail.com
" />
    <add key="username" value="
bla...@gmail.com
" />
    <add key="password" value="fdfdsfdsfds" />
    <add key="TO" value="
bla...@gmail.com
" />
    <add key="BCC" value="" />
    <add key="mode" value="release" />
 
nel log del programma vedo
 
System.Net.Mail.SmtpException: The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.7.0 Must issue a STARTTLS command first. x184-v6sm2124404wmg.24 - gsmtp
 
come faccio a farlo funzionare? prima funzionava perchè usavo un dominio senza autenticazione. Oppure conoscete un dominio che fa creare nuove mail senza autenticazione?
 
grazie

"
         ##  usa tls (invia starttls)
         set smtp-use-tls
         ##  usa autenticazione (
         set smtp-auth=login
         ##  autentica come user
         set smtp-auth-user=
MioAc...@gmail.com
 
         ##  autentica con password
         set smtp-auth-password=miapassword
         ##  aggiungi firma
         set signature=$HOME/nome_file_per_signature
}
 
Inoltre devi configurare gmail, via web, con autenticazione non sicura
Se il tuo programma non è troppo vecchio dovresti trovare direttive 
analoghe.
 
Ciao
Giovanni
-- 
   A computer is like an air conditioner,
   it stops working when you open Windows.
   < 
http://giovanni.homelinux.net/
 >
Newsgroup: it.comp.lang.c
Titolo: linux

Qualcuno di voi mi ha detto che linux č stato programmato in C, mi
piacerebbe quindi vedere come č stato fatto. Dato che č open source dove
posso trovare i file sorgenti del programma??
CIAO

 ha scritto nel messaggio
news:Z12E9.65246$Yw.30...@news2.tin.it...


 posso trovare i file sorgenti del programma??
Installa i sorgenti del kernel quindi vai in /usr/src/linux.

 posso trovare i file sorgenti del programma??
Oltre a scaricarli da 
www.kernel.org
, puio anche navigare online nei 
sorgenti a questo URL: 
http://lxr.linux.no/source/
-- 
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."


grazie a tutti

 grazie a tutti
Prima di ringraziare prova a guardarli :-)
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Newsgroup: it.comp.lang.c
Titolo: Problemi con il Borland C

Ciao,
 mi trovo a modificare un progetto (16 bit DOS non fatto da me ) costituito
da parecchi sorgenti all'interno dei quali ci sono delle funzioni scritte
anche in ASM.
Uso il Borland C 4.52.
 Ecco le opzioni di compilazione:
processor:
instruction set -> 80186
data alignment -> Byte
calling convention:
calling conventions -> C
memory model:
mixed model override -> small
assume SS Equals DS -> Default
options -> far virtual tables, automatic far data, fast huge pointers
far data threshold -> 32767
segment names data:
"*"
segment names far data:
"*"
Entry/exit code:
nessuna selezione
Ebbene, succede una cosa stranissima:
Se nel Main ci metto una getch() , il progetto si compila e linka
normalmente , ma appena lanciato da subito un errore di esecuzione di
istruzione non valida. ( il bello e' che alla getch() non arriva nemmeno
....non fa niente ).
Penso dipenda dalle opzioni di compilazione ma non essendo molto esperto di
queste ( io solitamente uso quelle standard)
non capisco dove possa essere il problema.
Ringrazio chiunque possa darmi qualche suggerimento.
Michele

 instruction set -> 80186
prova ad usare come instruction set -> 8086

> prova ad usare come instruction set -> 8086
Nessun cambiamento.
Newsgroup: it.comp.lang.c
Titolo: inserimento di un nodo in una lista

Ciao a tutti, in questa funzione:
int ins(NODE *h, int pos, int num)
{
	NODE *new;
	int i;
	for (i = 1; i != pos-1 && h->next != NULL; i++)
		h = h->next;
	if (h->next == NULL)
		return -1;
	new = malloc(sizeof(NODE));
	new->num = n;
	new->next = h->next;
	h->next = new;
	return 0;
}
la quale dovrebbe inserire un elemento al posto 'pos', scalando di uno in
avanti quello che si trova in 'pos', e tralasciando il fatto che non
funziona se voglio inserire un nodo al primo posto, perchè all'ultimo posto
riesco comunque a inserirlo? Ad esempio:
head --> 2 --> 5 --> 9 --> NULL
Avevo calcolato che in realtà non riuscivo a inserirlo neanche all'ultimo
postp perchè pensavo che h->next dell'ultimo nodo, cioè quello che contiene
il 9, puntasse a NULL, per cui sarebbe stata falsa la condizione nel for
h->next != NULL. Quindi il programma si dovrebbe fermare al 9 e inserire il
nodo al posto del 9 facendo scalare quest'ultimo in avanti di uno e in
sostanza frapponendosi tra il 5 e il 9; mentre io inserendo in 'pos' il
valore 4 avrei voluto inserirlo tra il 9 e il NULL, facendo scalare
quest'ultimo di uno in avanti. Il problema è che funziona correttamente!
Cioè, io mi aspettavo che funzionasse male e invece lo inserisce
correttamente tra il 9 e il NULL. Perchè?
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

nessuno mi sa aiutare? possiiiiiiiibile??


 sostanza frapponendosi tra il 5 e il 9; 
No, supponendo di rimuovere l'if il nuovo nodo verra` inserito *dopo* il
9.
Luca
-- 
Home: 
http://kronoz.cjb.net
"New processes are created by other processes, just like new
 humans. New humans are created by other humans, of course,
 not by processes." -- Unix System Administration Handbook
Newsgroup: it.comp.lang.c
Titolo: Analisi di una stringa

Il mio problema riguarda l'analisi di una stringa di n parole, devo riuscire
a scrivere in un file, in ordine decrescente, le parole della stringa
partendo da quella che si ripete più volte.Nel nuovo file che devo creare
devo affiancare a ogni parola il numero di volte che essa si è ripetuta all'
interno della stringa.
Come posso fare?

 writes:

Normalmente prima di dare i compiti vengono spiegati gli algoritmi da
usare.  Si tratta di:
1) Aprire due files in lettura e scrittura; ripassa fopen e fclose.
2) Leggere "stringhe di n parole" dal file in lettura; ripassa fgets.
3) Spezzare la string in parole; ripassa strtok.
4) Organizzare in memoria le parole lette: in questo caso (ordine
   presumibilmente casuale) un albero binario dovrebbe garantire
   inserzioni e ricerche in tempi O(NlnN).  Le foglie dell'albero
   dovrebbero contenere la parola, il numero di volte che si e'
   presentata ed i due link di rigore.  Ripassa malloc (e gli alberi
   binari).
5) Alla fine del file d'ingresso, scrivere il sommario in uscita;
   ripassa fprintf.  Puoi traversare l'albero in-order, immagino
   (sequenza alfabetica).
6) Deallocare l'albero (puo' essere superfluo a seconda dell'ambiente,
   ma fa sempre buona impressione sul professore).  Ripassa free.
7) E' piu' facile ed elegante in C++; un bel std::set di std::pair di
   std::string ed unsigned (o una std::map)...  Puoi scegliere il
   linguaggio?
-- 
Maurizio Loreti                         
http://www.pd.infn.it/~loreti/mlo.html
Univ. of Padova, Dept. of Physics - Padova, Italy            
lor...@pd.infn.it

 Che metodo usare?
Potresti crearti un array parallelo a parole[] di tipo int quante[].
Ogni volta che fai un strtok memorizzi in un char *parola ogni parola
trovata.
Quindi scorri l'array parole[] e cerchi se la nuova parola esiste. Se esiste
incrementi l'array quante[] nella posizione trovata, se non esiste aggiungi
la parola in fondo e imposti quante[] in quella posizione a uno.
Alla fine ordini l'array[] quante in modo decrescente e parallelamente
l'array parole[].
Se non ti è chiaro posso prepararti un pezzetto di codice di esempio.

 Se non ti è chiaro posso prepararti un pezzetto di codice di esempio.
Lascia che i compiti li faccia da solo.


 compaiono....
Io ho suggerito un albero binario, ma per un ordinamento alfabetico.
Prova con un array di strutture {puntatore a c-string; unsigned;}:
certo che i tempi salgono, da O(N lnN) a O(N^2), se per ogni parola
devi confrontare con ognuna delle parole lette...  Alla fine, fai un
qsort del vettore.


Newsgroup: it.comp.lang.c
Titolo: scaricare MSVC++

Da dove posso scaricare questo compilatore ..... ?????
MSVC++
lele
gradita risposta anche in e-mail
k...@dnet.it
Ciao lele

MSVC++
legalmente lo puoi "scaricare" dal CD originale della microsoft
acquistato in uno dei tanti negozi.
non legalmente chiedi al tuo pirata di fiducia ;)
--
[ranger, email: 
ran...@queen.it
]
ICQ# 6585343
http://members.tripod.com/%7Eranger_rg/
Newsgroup: it.comp.lang.c
Titolo: Definizione errata di tipo ?

E' errata questa definizione di tipo ?
struct libro{
		char Titolo[128];    /*titolo array dimensione 128*/
		char Autore[128];     /*autore array dimensione 128*/
		char Codice[10];   /*codice identificativo */
		float Prezzo;
        int Prestito;     
		};
typedef struct libro Libro;
typedef struct libro Biblioteca[MAX_SIZE];  
-- 
Register here: 
http://www.000webhost.com/92681.html
*** 1500 MB of disk space
*** 100 GB of data transfer
*** PHP and MySQL support with no restrictions
*** cPanel control panel
*** Website Builder

 
Il secondo typedef non lo capisco.
il primo ok, stai dicendo "usero` Libro invece di struct libro", ma il
secondo?



typedef struct libro Biblioteca[MAX_SIZE] definisce un tipo array 
BIBLIOTECA di MAX_SIZE libri


 
Si scusami, fraintendevo una cosa.
Comunque non mi pare ci sia nulla di sbagliato nella definizione che hai
postato. Hai per caso qualche problema successivo alla dichiarazione?



Si, poi ho risolto, è che passavo l'array alla funzione tramite 
puntatore, mentre un array viene già passato per riferimento.
Grazie per la gentilezza


 		float Prezzo;
Sarebbe più corretto usare un tipo intero per memorizzare il prezzo (in 
centesimi).
E.
Newsgroup: it.comp.lang.c
Titolo: Leggere linea testo

in un file di testo, con fgets, e possibile leggere linee di caratteri
alfanumerici
di lunghezza variabile?
Grazie
Ciao

 caratteri alfanumerici di lunghezza variabile?
fgets(char *buffer, int size, FILE *stream) legge in 'buffer' fino a 
(size - 1) caratteri dal file riferito da stream e fermandosi quando 
incontra un EOF o un 'newline'. Il 'newline' viene copiato nel buffer 
e al contenuto viene aggiunto '\0'.
Ciao
Giovanni
-- 
   A computer is like an air conditioner,
   it stops working when you open Windows.
   < 
http://giovanni.homelinux.net/
 >

 contenuto viene aggiunto '\0'.
size e un numero intero, se size e x , e la linea e y?
Ciao



se x > y  legge y caratteri (fino al newline incluso)
se x <= y  legge (x - 1) caratteri


 Giovanni
ti ringrazio.
Ciao

 Giovanni 

 
No.  Se temi che una linea sia letta solo parzialmente occorre fare un 
check dei caratteri letti e tenere conto se la lettura è troncata.
Per wesempio:
char buffer[100];
int lettura_troncata = 0;
.........
while (fgets(buffer, sizeof(buffer), file) {
     len = strlen(buffer);
     if (len == (sizeof(buffer) - 1) && buffer[len] != '\n') {
         /* la linea non è completa */
	lettura_troncata = 1;
     }
     /* elaboro quanto letto tenendo presente lettura_troncata */
     ........
     lettura_troncata = 0;


     len = strlen(buffer);
Credo che fgets ritorni il numero di caratteri letti. Dunque
len=fgets(buffer,...);
risparmia una iterazione ed ï¿œ quindi piï¿œ efficiente che
len=strlen(buffer);
E.

 E.
vi ringrazio.
Saluti

 len=fgets(buffer,...);
Credi male.  fgets() ritorna un puntatore al buffer cioè il primo 
argomemto che viene passato oppure NULL in caso di errore o se trova 
EOF senza aver letto alcin carattere.
È appunto per questo che normalmente viene usato nei cicli while per 
leggere fino all'EOH
while (fgets(buffer, sizeof(buffer), file) {
	........


 alfanumerici di lunghezza variabile?
Scusa ma perch� non provi?
-- 
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: ricerca

salve a tutti e la prima volta che scrivo in questa news.
mi sto avviciando al mondo del c
qualcuno di buon cuore puņ darmi qualche indirizzo
di siti che hanno manuali tutor etc. per uno alle prime armi
grazie.

 qualcuno di buon cuore può darmi qualche indirizzo



Prova su 
www.programmazione.it
.
EMG

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

esiste un modo per ottenere il numero più
 piccolo e quello più grande (nei vari tipi)?...
Ricordo che in turbopascal esisteva un max integer....esiste una cosa simile
in c standard?

 grande (nei vari tipi)?...
  Guarda nell'header standard "limits.h".
	Alla prossima,
		Marco

 in c standard?
Nell'header file standard limits.h trovi le varie costanti che ti
servono.
EMG
Newsgroup: it.comp.lang.c
Titolo: Auguri

...per le feste e l'anno che verrà

 ...per le feste e l'anno che verrà
 
Auguri a te, auguri a tutti :)

 ...per le feste e l'anno che verrà
 
Auguri!

 ...per le feste e l'anno che verrà
 
non scavolare :-)
 


ah hacker, ma hai dato un'occhiata alla data del post?

Il giorno Mon, 10 Aug 2020 09:30:19 +0200
jak <nos...@please.ty> ha scritto:

Non ci guardo quasi mai... :)
 


Auguri di nuovo!
Newsgroup: it.comp.lang.c
Titolo: Lista files e directory

Ciao a tutti
sto facendo un programmino in c++ a cui serve avere la lista dei file e 
delle directory.
Sotto Windows so che esiste la libreria <dir.h> in cui ci sono le 
funzioni che mi servono (anche se non me ne ricordo più il nome), ma 
sotto linux, cosa devo fare???
AIUTATEMI!!! :-)
ah, dimenticavo: non voglio lanciare un comando (tipo ls o dir) e 
guardarne l'output... voglio che faccia tutto il mio programma!
Grazie in anticipo
Telegraph Road


I'm not prejudiced, I hate everyone equally.

delle directory.
x-post in due newsgroup e due OT, complimenti :-)
A parte gli scherzi il newsgroup giusto è quello specifico della
piattaforma su cui sviluppi.
-- 
Marco Barisione (ICQ 84277092)


In C++ non c'è niente per fare quello che vuoi.
In POSIX tuttavia è c'è opendir.
E' presente in tutti i sistemi UNIX (ed anche nel compilatore
della Borland).
Saluti  Manlio Perillo

Newsgroup: it.comp.lang.c
Titolo: Porte parallele

Salve a tutti, sono alle prime armi con il c,
(conosco un po' di c++) e sto tentanto di
comunicare con una porta parallela da linux
(compilatore GNU).
Se la periferica attaccata alla porta è "chiacchierona"
(e.g. una stampante laser) le funzioni di I/O
come read e write vanno a meraviglia.
Se invece attacco uno scanner non riesco ne a
leggere ne' a scrivere. Come posso fare?
esiste qualche libreria che fa al caso mio o
qualche modo standard per "svegliare" la periferica?
Grazie.
Baba.
Sent via Deja.com 
http://www.deja.com/
Share what you know. Learn what you don't.

qualche modo standard per "svegliare" la periferica?
Dovresti almeno sapere cosa e come dirle qualcosa "per svegiarla".
_____________________________________________________
Francesco Trotta
http://space.tin.it/computer/ftrotta
elimina "x_" dal mio indirizzo per le risposte

qualche modo standard per "svegliare" la periferica?
Ogni periferica usa il suo protocollo di comunicazione e devi riferirti a
quello per poterla "svegliare". Per quanto riguarda gli scanner lo standard
si chiama Twain: cercando in rete troverai la documentazione che fa al caso
tuo.
Ciao, Giuseppe
---------------------------------------------------------------------------
_Guybrush su IRCNet canale #programmazione
ICQ: 42227764
---------------------------------------------------------------------------
Newsgroup: it.comp.lang.c
Titolo: Chiamata a sistema in Linux

Salve, ho un problema, vorrei sapere come devo strutturare la chiamata a
sistema
inambiente Linux per ottenere una pausa nell'esecuzione del programma.
Con Visual Studio facevo:
system("PAUSE");
e in Linux??
grazie

Antonio Sglavo wrote:

allora, ci sono le chiamate:
       #include <unistd.h>
       unsigned int sleep(unsigned int seconds);
 
che ti permette di aspettare tot secondi (quanti sono come argomento)
e la chiamata:
        #include <unistd.h>
       int pause(void);
che toglie il task dalla lista di processi runnable, finche' non gli viene 
mandato un segnale.
Ci sono da dire 2 cose a riguardo. La prima syscall e' piu' facile da 
utilizzare per un semplice motivo: non devi implementare i segnali 
all'interno del tuo programma. Dall'altro lato, non e' il massimo della 
pulizia perche' la sua implementazione non e' altro che polling, cioe' 
passa il tempo a controllare l'orologio di sistema. 
Ah, un'altro piccolo particolare e' che ci sono anche altre varianti come 
la usleep() che accetta come argomento una tempo espresso in microsecondi.
Ti consiglio caldamente di installarti il pacchetto manpages-dev che 
contiene il man a tutte le funzioni/syscall principali.
spero di esserti stato d'aiuto.
-- 
 Claudio Martella
 Centro Informatico di Ateneo - CCR
 Politecnico di Milano
... Powered By Debian/GNU Linux


La system() e' standard, quindi funziona sotto ogni implementazione
del C (implementazione aderente allo standard ovviamente), pero' non
mi viene in mente un comando immediato per fare questo.
Puoi ottenere lo stesso effetto scrivendo 3 righe di codice C pero':
<CODE>
while (getchar != '\n);
printf("Premere invio per continuare\n");
getchar();
</CODE>
Mox :)

Puoi usare la chiamata di sistema sleep(), per vedere come funziona vai 
alla console dei comandi e dgt "man sleep", ti dara' tutte le 
informazioni che vuoi.
Andrea


Newsgroup: it.comp.lang.c
Titolo: entry point, debug

vorrei poter eseguire qualche operazione che mi notifichi il momento in cui
una DLL viene caricata
pero' ne MessageBox, ne scritture su disco sembrano avere effetto dentro a
quella particolare funzione... come posso fare?
scusate la domanda scema....
grazie e ciao

quella particolare funzione... come posso fare?
Se la Dll l'hai scritta tu un modo c'è, però per avere la risposta devi
postare sul NG adatto (it.comp.programmare.win32) e lì ti verrà risposto.
Ciao, Giuseppe
---------------------------------------------------------------------------
_Guybrush su IRCNet canale #programmazione
ICQ: 42227764
---------------------------------------------------------------------------
Newsgroup: it.comp.lang.c
Titolo: compilatore gcc

Buongiorno a tutti, ho una domanda da farvi: come facio ad informare il
compilatore di inserire, ad esempio, un file oggetto appena creato non
nella cartella corrente , ma in una cartella specificata da me ?
Conosco gia la direttiva -I per dirgli dove prendere le librerie ma
sono curioso di sapere se è possibile fare tutto in fase di
compilazione senza effettuare manualmente un mv. Grazie

 Conosco gia la direttiva -I per dirgli dove prendere le librerie 
-I è per gli include afaik.


Con l'opzione -o puoi nominare il file di output e metterlo dove vuoi.
Ciao
Giovanni
-- 
   A computer is like an air conditioner,
   it stops working when you open Windows.
   Registered Linux user #337974  < 
http://giovanni.homelinux.net/
 >

ok, con l'opzion -o ci sono , ma se ad esempio ho : gcc -c file.c e
l'oggetto creato lo volgio mettere nella cartella obj che sta nella
stessa dir di file.c come faccio ?


$ gcc -c file.c -o obj/file.o
Semplice no?  Definire le regole in un makefile e` un poco piu` 
complicato perche` di default le mette nella directory corrente e non 
sono sicuro che sia portabile.


Newsgroup: it.comp.lang.c
Titolo: problemi con la system( )

salve a tutti
ho un problema: non mi funzione la system( )!!!
questo semplice programmino:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
system("notepad.exe");
return 0;
}
non ne vuole sapere di funzionare.
al momento della compilazione va tutto ok (0 errori, 0 warning),
quando tento di costruire l'eseguibile, il compilatore (borland c++
4.02) mi dà i seguenti errori:
Compiling SYSTEM.C:
Linking system.exe:
Linker Warning: No module definition file specified: using defaults
Linker Error: Undefined symbol _system in module SYSTEM.C
qualcuno sa come risolvere il problema?
grazie anticipato a tutti...
~*dyablo*~
mail: 
dya...@virgilio.it

 }
Scusa ma questo eseguibile non ha il suo percorso? Come pensi che lo possa
trovare?

trovare?
notepad sta nel PATH del sistema e quindi lo trova...
--
Lawrence "Rhymes" Oluyede
rhy...@myself.com
cosa c'entra Visual Basic 
con la programmazione?
(Antonio Cuni, PROGRAMMATORE)

}
A me funziona! Compilato con Dev c++ (minGW).
(ho fatto cut&paste da qui, quindi non hai sbagliato a scrivere!)
bye!
___
Ciao a tutti e a prestissimo!
Togliete _nonrompeteconlospamming per rispondere in Mail
Andrew McBlues


tipico errore dovuto al fatto che stai cercando di fare un exe per windows.
nel tipo di progetto scegli DOS e vedrai che poi funziona.
ciao
donCiccio

 ha scritto nel messaggio
news:piMo8.86669$%g7.27...@twister2.libero.it...

Newsgroup: it.comp.lang.c
Titolo: problema con fwrite (un'altro)

Ho il seguente codice:
#include <stdio.h>
#ifdef  FILEIO
FILE *puntx
FILE *puntfilein
#endif
int buffer_in[3];
char *puntg;
main(){
int v = 100;
puntfilein = fopen("input.bmp", "rb");
puntx = fopen("output.bmp", "wb");
   while(v--){
        if(condizione1){
                fread(buffer_in,4,3,puntfilein);
        }
        else{ buffer_in = {a,b,c};}
        //**********************
        // smanettamenti vari coi dati //
        //**********************
        for(a=0; a<12*8;a=a+8){
            fwrite(puntg,1,1,puntx);
        }
    }
}
La condizione1 viene verificata n volte, poi si entra nell'else 1a volta e 
poi di nuovo si riverifica n volte a rotazione per un numero k di volte;
In pratica per ogni accadimento di un else, vengono letti 432byte dall' 
input.bmp; il problema č che in output.bmp trovo solo l'ultimo gruppo di 
432byte scritti
come se ogni volta venisse cancellato e riscritto; tuttavia l'fopen avviene 
al di fuori del while entro cui avviengono tutte le scritture e dal quale si 
esce solo a fine programma...
Perchč?
____________________
Se la so, rispondo sempre. 

                 fread(buffer_in,4,3,puntfilein);
Questa riga è sbagliata.
man fread
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 
Questa me la devi spiegare!  Questa volta hai sbagliato standard :-)
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
DESCRIPTION
The function fread reads nmemb elements of data, each size bytes long, 
from the stream pointed to by stream, storing them at the location given 
by ptr.


 size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
Sì, mi sono sbagliato, la chiamata è corretta.


Problema risolto; una delle condizioni non veniva verificata!!

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

sapete se da qualche parte esiste il sorgente originale del notepad?

sapete se da qualche parte esiste il sorgente originale del notepad?
Praticamente fa tutto la finestra di classe "edit" quindi il sorgente è
facile da scrivere.
Ciao, Giuseppe
---------------------------------------------------------------------------
_Guybrush su IRCNet canale #programmazione
ICQ: 42227764
---------------------------------------------------------------------------

 sapete se da qualche parte esiste il sorgente originale del notepad?
Non so se posso esserti utile, ma tra gli esempi del Borland C++ 5.2(e
quindi credo anche tra gli esempi del Visual C++) trovi il codice sogente di
Wordpad con le MFC
Ciao
    Fabio
Newsgroup: it.comp.lang.c
Titolo: UNHANDLED EXCEPTION !!!

Salve !
Sto' programmando un editor di testo nel linguaggio C per un esame
universitario. L' implementazione sulla quale sto lavorando ora riguarda la
scrittura di un carattere immesso da tastiera in un buffer allocato tramite
farmalloc strutturato utilizzando una lista doppiamente concatenata come
tipo di dati astratto. Ciascun nodo ha la seguente struttura:
typedef struct TextBuffer *TextBufferPtr;
typedef struct TextBuffer {
char riga[1023];
int lunghezza_riga;
TextBufferPtr RigaPrecedente;
TextBufferPtr RigaSuccessiva;
};
Spesso mi capita il seguente errore e mi è impossibile capire dov'e' che sto
sbagliando dal momento che il gia citato errore interrompe persino l'
esecuzione step by step, l' uso dei breakpoints e il monitoraggio delle
variabili. Non mi resta quindi che cercare di interpretare l' errore che mi
da il compilatore BORLAND C++ qui sotto:
----------------------------------------------------------------------------
-------------------------------------------------------------
UNHANDLED EXCEPTION 0D at 009F:0EE2 Error code : 0000
AX = 000D    BX = 8B55    CX=0020    DX = 06DF
SI = 0740    DI = 8B55    BP = 0F6A    SP = 0F62
CS = 009F    Limit = FFFF
DS = 0097    Limit = FFFF
ES = 0297    Limit = 0A74
SS = 0087    Limit = 0FFF
- 009F: 0EDA    00 2D 93 8B D8 EB F1 57 26 8B 3F 26 89 57 02 26
You may hit [T] to terminate, but you should reboot as soon as possible,
because the system is unstable.
----------------------------------------------------------------------------
--------------------------------------------------------------
Una volta premuto T, Windows 98 mi da' il seguente messaggio di errore:
----------------------------------------------------------------------------
------
L' applicazione ha riscontrato un errore di protezione generale.
Posizione errore: 009F: 0EE2
Interrupt attivi ; Nessuno
----------------------------------------------------------------------------
-------
Qualcuno puo' aiutarmi a capire cosa succede ? Grazie !
Roberto.

da il compilatore BORLAND C++ qui sotto:
Occorrerebbe sapere almeno che versione di compilatore stai usando,
se stai compilando per Win32 console o per DOS.
Se per DOS, in quale modello di memoria.
Se usi farmalloc(), semberrebbe che si tratti di un problema di
"dimensione" dei puntatori e di modello di memoria.
I puntatori, cosi' come li hai dichiarati, sembrerebbero
 a 16 bit (quindi nello stesso segmento), mentre dovrebbero
 essere "_far" cioe' espressi come SEG:OFF, ed occupare 16 + 16 bit.
Uso il condizionale dato che non so se il tuo compilatore faccia assunzioni
implicite sulla dimensione dei puntatori a seconda di particolari switch di
compilazione.
typedef struct TextBuffer  {
char _far riga[1023];
int lunghezza_riga;
TextBuffer _far * RigaPrecedente;
TextBuffer _far * RigaSuccessiva;
} TextBuffer;
Consiglio: scaricare compilatore free che sia nativo Win32, ed usare
un debugger all'altezza dei processori di oggi (32 bit).
[la precedente frase vale se si sta usando un prodotto a 16 bit sotto
Win98].
Newsgroup: it.comp.lang.c
Titolo: Problema con realloc()

Salve a tutti con una struttura di questo tipo:
struct Data{
int giorno,mese,anno;
};
struct Persona{
char nome[32];
char cognome[32];
char telefono[6];
Data data_di_nascita;
};
typedef struct Persona *Contatti;
void InserisciPersona(Contatti *contatti,int *num_contatti,Persona
persona ){
Contatti v;
v=(Contatti)realloc(*contatti,sizeof(Persona*)*(*num_contatti+1));
v[*num_contatti]=persona;
*num_contatti=*num_contatti+1;
}
Quando devo allocare il vettore di Record ho il classico errore di
segmentation fault a cosa è dovutro l'errore e qual'e' la possibile
soluzione utilizzando sempre il costrutto di realloc() visto ke si tratta di
un esercizio di allocazione dinamica?Grazie a tutti.

 un esercizio di allocazione dinamica?
Usa malloc() al posto di realloc() oppure azzera il puntatore contatti
prima.
EMG
--
EMAG Software Homepage:     
http://www.emagsoftware.it
The EMG's ZX-Spectrum Page: 
http://www.emagsoftware.it/spectrum
The Best of Spectrum Games: 
http://www.emagsoftware.it/tbosg

 ha scritto nel
messaggio news:3EB4FDF3...@emagsoftware.it...


 etc......
Se mandi un piccolo sorgente compilabile č pių facile aiutarti.
Altrimenti fai delle domande precise.

Newsgroup: it.comp.lang.c
Titolo: errore shared library non trovata

Salve,
sto facendo delle prove con le librerie gpib sotto linux, ma credo che
il mio problema sia legato alla compilazione in generale piuttosto che
alla libreria specifica.
quando compilo il mio programmino con
gcc -Wall -O2 -lgpib -o test test.c
non ricevo alcun errore. se lancio ./test
ricevo
error while loading shared libraries: libgpib.so.0: cannot open shared
object file: No such file or directory
tuttavia, find / -name libgpib.so.0 mi dice
/usr/local/linux-gpib-3.2.09/lib/.libs/libgpib.so.0
/usr/local/lib/libgpib.so.0
dunque c'e'.
qualche idea di quale sia il problema ed, eventualmente, come
risolvere?
grazie in anticipo,
mirko

iop wrote:

La libreria non e` installata al posto giusto (o non è stata 
installata del tutto).  Di default le librerie vengono ricercate in 
/lib, /usr/lib e /usr/local/lib.  Oppure è necessario specificare il 
path di ricerca con la variabile "LD_LIBRARY_PATH" od inserire il path 
della libreria nel file /etc/ld.so.conf riconfigurando il loader con 
il comando ldconfig.  Quest'ultimo metodo è però sconsigliato se il 
path della libreria è un path provvisorio come sembra il tuo caso.
Ciao
Giovanni
-- 
   A computer is like an air conditioner,
   it stops working when you open Windows.
   Registered Linux user #337974  < 
http://giovanni.homelinux.net/
 >

 /lib, /usr/lib e /usr/local/lib.
grazie per la risposta.
pero' se le librerie vengono cercate nelle dir che hai scritto, allora
dovrebbe trovare anche la gpib, visto che find la trova (anche) in /
usr/local/lib, o no?
stasera controllo anche il LD_LIBRARY_PATH e vedo che c'e' dentro. e
se spostassi/copiassi librerie gpib in /usr/lib?

 
Basta creare semplicemente un link.

 se spostassi/copiassi librerie gpib in /usr/lib?
Non dovrebbe essere necessario se le librerie sono installate e se
/usr/local/lib è presente in /etc/ld.so.conf.


 /usr/local/lib è presente in /etc/ld.so.conf.
grazie mille, funziona.
e' bastato aggiungere /usr/local/lib in /etc/ld.so.conf e poi
ldconfig.
grande soddisfazione pilotare gli strumenti...
Newsgroup: it.comp.lang.c
Titolo: Domanda su "The Art Of Computer Programming"

Salve
Forse la domanda e' OT ma visto che sono in cerca di un super libro sulla
programmazione volevo info su taocp ...
La cosa che piu' mi preme di sapere, e' se il linguaggio usato da quel libro
e' sempre quello strano assembler... (che non e' x86)
Visto che quel libro non e' esattamente da newbie sono un po titubante
riguardo il suo acquisto..
Ciao e grazie

fazio wrote:

Se sicuro che sia 1 libro?
Ciao e grazie
-- 
Abruzzo SIlvio
goku_...@libero.it
silvi...@aruba.it
Linux Machine 219721
^_____^

Guardea io li ho comprati (3 volumi) e sono soddisfatto.
Il linguaggio e' l'assembler del MIX ma io non li ho guardati dato che ci
sono gli algoritmi scriitti in metacodice che secondo me sono piu'
esemplificativi.
Per quanto riguarda il contenuto: v preso come reference, nel senso che su
quei problemi classici trattati (molti) trovi una trattazione molto
approfondita ed esauriente.
E' uno di quei libri che secondo me non dovrebbero mai mancare nella
libreria...
spero di averti aiutato
Villo

grazie villo mi hai convinto

Newsgroup: it.comp.lang.c
Titolo: Convertire senza itoa...

Ciao a tutti,
Avrei bisogno di convertire un intero in una stringa senza utilizzare l'itoa
(purtroppo il compilatore che DEVO usare non prevede tale funzione), ho
pensato di provare con un cast
    strcpy(str,(char)int)
ma non credo sia corretto.
Qualcuno ha qualche idea o consiglio?
Grazie
Ale

 Avrei bisogno di convertire un intero in una stringa senza utilizzare
l'itoa
    sprintf(str,"%d", numero_intero);
Maurizio.

Newsgroup: it.comp.lang.c
Titolo: Leggere la porta Joystic

Salve, come posso fare per leggere i valori x e y della porta joystic?
Grazie

Sul mio sito trovi un esempio in C/ASM (sezione C, voce 'Primitive')
http://members.xoom.it/freesource
Ciao, Carlo

Newsgroup: it.comp.lang.c
Titolo: Risolvere un sistema omogeneo...

Salve ragazzi, vi volevo chiedere un piacere abbastanza urgente... sto
facendo un programmino di elettrotecnica, ma ho poco tempo a disposizione.
Così volevo chiedervi se qualcuno ha in già casa una function che risolva un
sistema omogeneo di n equazioni in n incognite (di rango n naturalmente).
Ringrazio infinitamente chi mi può aiutare...
--
________________________________
Togliete NoSpaM per rispondermi
bye Brain

 (di rango n naturalmente).
  In rete puoi trovare molti esempi su algoritmi che trattano questo
tipo di problema. Tra gli altri, ti consiglio la triangolarizzazione LU
oppure la fattorizzazione di Gauss/Jordan, entrambi implementabili con
poche righe di codice.
	Alla prossima,
		Marco

poche righe di codice.
grazie... nel frattempo ho già fatto da solo una cosa terra-terra cmq se mi
rimane un po' di tempo ci do un occhiata per ottimizzare il tutto.
--
________________________________
per rispondermi iliasba(at)
tin.it
bye Brain
Newsgroup: it.comp.lang.c
Titolo: FAQ 5 - convertire una stringa in numero

Qui c'è da prendere una decisione: quando si specificano le funzioni da
usare, è meglio utilizzare la loro dichiarazione (stile int strcmp (const
char *s1, const char *s2)) o un esempio esplicativo come sotto, visto che
probabilmente chi è nuovo fa fatica a capire la dichiarazione?
----------------------------------------------------------------------
Come faccio a convertire una stringa in una variabile numerica?
Si usano le funzioni della libreria stdlib.h, precisamente:
- atoi() converte una stringa in un intero.   Es: intnum = atoi(stringa);
- atof() converte una stringa in un float.     Es. floatnum = atof(stringa);
- atol() converte una stringa in un long Es. longnum = atol(stringa);
--
Marco Coppo
University Of Sheffield

 probabilmente chi è nuovo fa fatica a capire la dichiarazione?
Se condo me e' bene specificare tutte e 2 le cose per una maggiore
chiarezza,senza lasciar spazio a dubbi,e anche l'header file relativo.
Ti sei dimenticato di specificare che le funzioni:
int atoi( const char * );
long int atol( const char * );
double atof( const char * );
sono definite in stdlib.h
Ivan Molella

 probabilmente chi è nuovo fa fatica a capire la dichiarazione?
Io penso che un piccolo esempio non faccia male e anzi valorizzi la FAQ.
EMG

Riporto di seguito l'intervento di Maurizio Loreti, giuntomi via email,
cosicchè tutti possano stare aggiornati sull'evoluzione della discussione.:
-------------------------------------------------------------------
Aggiungerei un cenno a strtol e compagnia.  In realta' sono assai
meglio di atoi etc. per quel che riguarda l'error checking (atoi
si ferma al primo carattere non valido e non dice niente di piu';
strtol setta un pointer a carattere che puoi testare per vedere se
punta a whitespace o simile).  altro vantaggio e' che puoi
interpretare la stringa secondo le convenzioni del C, e.g. 10, 0xA e
012 vengono tradotte nello stesso numero (se lo vuoi, beninteso).
"compagnia" e', se non mi ricordo male, strtoul e strtod.
--
Maurizio Loreti
http://www.pd.infn.it/~loreti/mlo.html
Univ. of Padova, Dept. of Physics - Padova, Italy
lor...@pd.infn.it




probabilmente chi è nuovo fa fatica a capire la dichiarazione?
La seconda che hai detto ;)
Se si vogliono maggiori informazioni sul prototipo delle funzioni, si
puo' sempre consultare l'help del proprio compilatore o il manuale del
linguaggio.
--
Andrea Laforgia (
andrea_...@bigfoot.com
)
---------------------------------------------

 linguaggio.
Scusa, ma visto che ci si trova a fare una raccolta del genere non sarebbe
meglio specificare entrambe(esempio e prototipo), per fare una cosa piu'
chiara e completa?
Ivan Molella

chiara e completa?
Secondo me il prototipo non serve. L'esempio si'.

Newsgroup: it.comp.lang.c
Titolo: Scanf e strutture

Ciao
ho un problema che non riesco a risolvere
e mi sta facendo letteralmente impazzire;
probabilmente e' una scemenza pero' io non la capisco.
Allora:
main()
{
   typedef struct{ char stringa[20];
     float raggio;
     float area;
    } tipocerchio;
   tipocerchio cerchio[10];
   int i=0;
    scanf("%f",&cerchio[i].raggio);
}
Durante la compilazione non mi dice niente,
ma appena eseguo il programma si blocca:
" scanf : floating point formats not linked
Abnormal program termination"
perche'?
Invece se definisco;
   float temp;
   scanf("%f",&temp);
   cerchio[i].raggio=temp;
funziona regolarmente.
Chi mi sa dare una spiegazione?
Grazie
xi...@usa.net

perche'?
In effetti e' qualcosa su cui perdere la testa !!! :-)
Tra l'altro nell'esempio della funzione "scanf" c'e' riproposto
esattamente lo stesso caso, ma non capisco perche' nell'eseguirlo il
compilatore va' avanti tranquillamente.
Ho pensato di cambiare compilatore e difatti col GCC funziona.
--------------------------------------------------------
Andrea      
mica uno qualunque...
--------------------------------------------------------

perche'?
forse devi linkare la libreria matematica, comunque la cosa e` strana,
sara` un bug del compilatore ;)
--
[ranger, email: 
ran...@queen.it
]
ICQ# 6585343
http://members.tripod.com/%7Eranger_rg/

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

Salve,
so che e' vecchio ma potreste gentilmente spiegarmi, il for? :-\
...
sopratutto quel "];
int i;
int main()
{
  for(;i["]<i;++i){--i;}"];
  read('-'-'-',i+++"hello, world!\n",'/'/'/'));
}
read(j,i,p){write(j/p+p,i---j,i/i);}
grazie

Salvatore Di Fazio ha scritto:

cerca un mio post del mese scorso, ho fatto la stessa domanda.
se invece non hai voglia...
for(; i["]<i;++i){--i;}"]; read(...));
i["abc"] significa *(i+"abc") quindi *("abc"+i) e quindi "abc"[i] cioe' 
la i+1esima lettera della stringa "abc". Quando i (che viene 
incrementato da un'altra parte) arriva a strlen("abc"), l'espressione 
"abc"[i] e' equivalente all'ultimo carattere della stringa, cioe' 0. 
Quello 0 viene considerato come falso e il for termina. Spero che sia 
giusto... :-)
-- 
Devaraja (Xdevaraja87^gmail^c0mX)
Linux Registerd User #338167
http://counter.li.org

guarda questo:
#include <stdio.h>
struct zz{double xx,hw;}ape;int z;int main(){char *hw="hello world!\n";
char *xx=(char*)&ape;int i=2,cnt=14;switch(cnt%8){case 0: do{ 
*xx++=z++[hw];case 7:
*xx++=z++[hw];case 6:*xx++=z++[hw];case 5:*xx++=z++[hw];case 
4:*xx++=z++[hw];case 3:
*xx++=z++[hw];case 2:*xx++=z++[hw];case 1:*xx++=z++[hw];}while(--i>0);}
printf("%s%c",(char*)&ape,'\\'/'\\'-('0'-'1'));return 0;}

Newsgroup: it.comp.lang.c
Titolo: STL C++ in C

Posso utilizzare la STL del C++ in C?
Personalmente non credo si possa fare.
D'altronde come si scriverebbe in C un codice come questo?
Probabilmente che un compilatore C non passerebbe nemmeno la fase di
precompilazione.
#include <vector>
void main (void){
 std::vector<int> v;
}
Auguri per il nuovo anno, Ale


Ciao Paolo
-----------== Posted via Deja News, The Discussion Network ==----------
http://www.dejanews.com/
       Search, Read, Discuss, or Start Your Own    

Posso utilizzare la STL del C++ in C?
No; STL in tutte le sue versioni (e anche l'attuale libreria standard
del C++, che STL non e`) fa uso di template ed altri costrutti C++
che in C non hanno proprio nessuna corrispondenza.
Puoi, naturalmente, incapsulare in C++ con extern "C" funzionalita`
implementate in termini di STL (o qualsiasi altra libreria C++, con
preferenza per la libreria standard del linguaggio), per renderle
disponibili a vecchi sottosistemi che per qualche ragione scegli
di non migrare da C a C++.
Alex

Newsgroup: it.comp.lang.c
Titolo: folat in int

Ho bisogno di fare un calcolo temporaneo in float ma il numero è in una 
varibile di tipo long int(bisogna usare il casting ma il compilaotre mi 
da sempre errore):
La funzione è del genere :
int x , y
x= x /y *10000 
Non posso cambiare l'ordine delle funzioni perchè nel programma sono 
separate e ci sono tati if in mezzo.Ma sono sicuro che il risultato è 
sempre positivo.
GRAZIE
<SAX>

 x= x /y *10000
    x = 10000.0 * x / y;
Maurizio.

Newsgroup: it.comp.lang.c
Titolo: Lista concarenata aiuto

sto cercano di crearmi una funzione per crearmi una lista concatenata
unidirezionale...
ho definito una struttura con due campi char e un puntatore alla successiva
stuttura...
Vorrei con un ciclo while allocare memoria alla lista e concatenarla....
ma non ci riesco...
mi aiute. Grazie mille...
while {
temp=(..*)malloc(size of(...))
--
assegnazione a temp->
--
temp->next= NULL;
adesso se si deve ripetere il ciclo whilw come posso allocare memoria a
temp->next in modo da poter concatenare la lista...
Grazie ancora...

assegnazione a temp->
ipotesi
struct elemento {
	int i;
	struct elemento *prev;
}
struct elemento * temp;
temp=malloc(.....)
temp->i=valore;
temp->prev=base;
base=temp;
anche se é uniderzionale in modo lifo
cod
Newsgroup: it.comp.lang.c
Titolo: C traps and pitfalls

 (da 
http://www-h.eng.cam.ac.uk/help/tpl/languages/C.html
)
a me interesserebbe, ma che particolarità ha, cosa ha di speciale, perchè mi
dovrebbe servire?
e una domanda strana però...
:)

e una domanda strana però...
Perche' e' un libro unico nel suo genere: sviscera la parte piu'
"sporta" del C, ovvero ne analizza i trucchi (leciti e portabili su
ogni implementazioni) e i trabocchetti (errori o feature funzionanti
solo su alcune implementazioni), come dice il titolo stesso. Presta
molta attenzione agli errori subdoli, cioe' a quelli che normalmente
non ti segnala il compilatore e si sofferma anche su problemi di
portabilita'.
Ovviamente per leggerlo tu il C lo devi gia' conoscere e devi avere le
idee discretamente chiare per capire cosa ti sta dicendo.
Praticamente se alla fine hai capito cosa ha cercato di dirti
debuggare un programma C sara' molto piu' facile (e scriverlo meglio
anche).
-- 
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."

 wrote in message
news:o2eocuk10bts9f3ld...@4ax.com...
[CUT]
grazie tante!
ho capito che ora è presto!
txs!
Newsgroup: it.comp.lang.c
Titolo: PROGRAMMA STUPIDO!

Chi mi sa dire perchč questo stupidissimo programma non vuole funzionare?!!
#include <stdio.h>
/* conta le linee in input*/
main()
{
  int c, nl;
  nl=0;
 while ((c=getchar()) !=EOF)
      if (c =='\n')
          ++nl
  printf("%d\n", nl);
 }
GRAZIE MILLE
Saluti, Ale.

 'The Krazy One' +-- 
->  UIN: 21267457 - ircnet: krazy98 - e.d., 10-11pm  <-
---->  "To Reign is Worth Ambition, Though in Hell.
     Better to Reign in Hell Than Serve in Heaven" <---
*** TaRT_Tagline: Help endangered species - adopt a KGB operative.


ICQ #34602650

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

          ++nl
             ^^^^ in C ogni istruzione deve terminare con un punto e
virgola.
La sintassi giusta e' 
           ++nl;
Andrea Laforgia

int main(void)
Scrivendo "main()" viene assunto per default "int main()" ...
Andrea Laforgia

           ++nl
Manca il punto e virgola dopo ++nl. Ma li compilate i programmi prima di
domandare?
EMG

 domandare?
o meglio: guardate i messaggi d'errore del compilatore?
suppongo che l'abitudine ad usare WindowZ e a cliccare su tutti quei
pulsanti di OK che qualche stupido programmatore mette sempre tra i piedi
per rendere difficile la vita al povero utente, che deve immancabilmente
chiedere all'amico piu` esperto che di installargli l'ultimo gioco di
motocross, abbia plasmato la mentalitą con cui ci si mette di fronte al
computer piu` verso un "io ordino - tu esegui - e se non esegui sei fatto
male" perdendo - tra l'altro - l'abitudine ad interpretare il feedback da
parte della macchina e a RAGIONARE
questa non č (del tutto) una critica verso il poveraccio che si e`
dimenticato il punto e virgola
e se qualcuno mi volesse rispondere "ficcati tu e il tuo discorso del #@%%0
nel NG it.seghe.mentali e non farti rivedere" gli ho risparmiato la fatica
TobiX