mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c
Titolo: output senza premere invio

Vorrei fare in modo che appena l'utente preme un tasto il programma dia
l'output, senza che l'utente debba premere invio. Come posso farlo? C'è
qualche funzione dedicata allo scopo?

mixo wrote:

In un mio programmino di prova ho utilizzato la funzione strdup() per
copiare una stringa in un'altra allocando automaticante lo spazio in
memoria necessario. Il problema è che tale funzione non è definita
nell'ANSI (a quanto ne so io). Ho provato a fare la stessa cosa utilizzando
qualcosa di standard, ma non funge. Ho provato così:
x = (char *)malloc(strlen(stringa + 1));
strcpy(stringa, x);
x e stringa sono dichiarati come puntatori a char.

 strcpy(stringa, x);
Se scrivi
strcpy(x, stringa);
"forse" funziona :-)
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Cacchio! Ho sbagliato! Non doveva essere una risposta, ma un nuovo thread!
Chiedo scusa!


 "forse" funziona :-)
e poi devi scrivere strlen(stringa)+1 e
non strlen(stringa+1),
ciao,
g.

 "forse" funziona :-)
Vabbè ormai è andata, ho fatto il danno... :)
Comunque grazie mille, sono un pollo! Confondevo la destinazione con la
sorgente. Pensavo che la x prendesse la stringa con la prima
istruzione...che idiota!

mixo wrote:

E per quanto riguarda questo problema (che era quello principale, poi ho
fatto quel casino e questo è rimasto inosservato)?



Non è possibile in standard C. Usa librerie specifiche che gestiscano il
terminale a basso livello, ad esempio ncurses.h
Ciao
Matic

mi pare che esista una funzione che si chiama getc() che legge un carattere
da input subito dopo la digitazione, come serve a te..
e mi pare che sia anche ANSI C...
Carlo

carlo wrote:

Appena l'utente immette un carattere il programma deve fornire l'output,
senza attendere che venga immesso il newline. Così se viene premuto ad
esempio q, il programma mostra subito l'output senza che debba esser
premuto q+invio. La funzione getc() attende comunque l'invio.

 terminale a basso livello, ad esempio ncurses.h
E non c'è qualche artifizio per rendere la cosa un pò più standard? Comunque
mi vado subito a guardare sta libreria. Altre librerie del genere quali
sono (se ci sono)?



il "problema" di fondo è che l'input sui terminali che siamo soliti usare
(il prompt di dos, la console di linux, ...) è bufferrizato, quindi non
dipende dal C, che dal canto suo invece mette a disposizione funzioni per
leggere un solo carattere, come appunto getc() o getchar().
Quindi il tutto diventa dipendente dal sistema operativo che si usa:
librerie come conio su windoz e ncurses su linucs forniscono la gestione a
basso livello del terminale che ti serve.
Cia`
Matic

Non fare tante prove...
int getch(void);
questa funziona e basta.... Se non sbaglio sta dentro conio.h
dipende dal compilatore... Cmq funziona la uso anche io e' fatta
proprio a pennello per questo scopo ^^
Ciao
REC

 questa funziona e basta...
Che io sappia questa è per windows. Io uso linux. Cercavo invece qualcosa di
portabile. Comunque per linux mi hanno già consigliato le ncurses. Grazie
comunque!
Newsgroup: it.comp.lang.c
Titolo: right and left values, c&fortran

Di nuovo sulle differenze tra fortran e c.
Nell'ambito del passaggio di variabili tra funzioni,
in fortran le variabili vengono passate per indirizzo
ed in C per valore. Volevo approfondire il significato:
In c siccome passo dei puntatori la funzione chiamata registra in un
SUO
STACK ( locale alla funzione chiamata) gli indirizzi assoluti delle
variabili da usare, in modo da poter accedere alle locazioni della
funzione chiamante.
E' giusto questo?
Se si la 'chiamata per valore' si riferisce al fatto che se non usassi
dei puntatori la funzione non sarebbe in grado di restituire valori al
termine della esecuzione?
Appena la funzione viene chiamata le variabili locali vengono create
ed inizializzate vero? e tra le variabili (locali alla funzione
chiamata) create ci sono anche i puntatori alle variabili (locali alla
funzione chiamante) vero?
Che io sappia in fortran vengono passati gli indirizzi delle variabili
e quindi sostanzialmente dei puntatori nonostante il linguaggio non ne
permetta la manipolazione esplicita.
Quale è allora la differenza tra i due tipi di chiamate e perche in
fortran c'è il rischio di side effects??
Qualcuno sa descrivermi dettagliatamente tutto quello che avviene in
una chiamata a funzione nei due casi perchè io non capisco bene la
differenza.
grazie tanto
michele

 fortran c'è il rischio di side effects??
Perche' nella funzione puoi modificare direttamente le variabili che passi
come parametro (cosa che ragionevolmente tu non ti aspetteresti).
-- 
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."
Newsgroup: it.comp.lang.c
Titolo: FUNZIONI E PROCEDURE

Che differenza c'è tra una funzione e una procedura? Il mio libro fa queste
distinzione, ma non l'ho ben capita. Potreste aiutarmi?
Grazie anticipatamente e AUGURI!
Ciao

Ciao
a livello di lng  ... questa distinzione era fatta in fatta in PASCAL
per identificare blocchi che restituivano del codice (function)
mentre la procedura eseguiva un compito specifico senza
restituire un risultato ...
una procedura potrebbe essere clrscr() ... pulisce la console senza
darti un risultato ...
mentre una funzione potrebbe essere printf (che torna il num di char
scritti in stdout) ...
Antonio

 >Che differenza c'è tra una funzione e una procedura? Il mio libro fa


 Che differenza c'è tra una funzione e una procedura?
Una funzione riporta un valore, una procedura no.
La distinzione deriva dal Pascal per le quali sono previste due keywords
apposite: Function e Procedure. Nel C inizialmente esistevano solo funzioni;
per esempio, è una funzione la seguente:
    float square(float x) {
        return x * x;
    }
che riporta il quadrato di un numero. Può essere richiamata con:
    y = square(3);
La funzione square, richiamata passando l'argomento 3, riporta il numero 9
che viene assegnato alla variabile y.
Una procedura veniva simulata ignorando semplicemente il valore riportato;
ad esempio:
    int stampa(float x) {
        printf("risultato: %6.2d\n", x);
        return 0;
    }
che può essere richiamata con: stampa(3.18). Questa è una funzione che
riporta 0, che, però, viene ignorato.
In seguito fu introdotto il tipo void per avere qualcosa che somigliasse
alle procedure del Pascal, cioè un insieme di istruzioni senza riportare
alcun valore. Ad esempio:
    void stampa(float x) {
        printf("risultato: %6.2d\n", x);
    }
non riporta alcun valore, ma esegue la stampa di un numero con un formato
prestabilito. Viene richiamata soltanto con:
    stampa(12.3);
È un errore oltre a non avere alcun senso scrivere: y = stampa(3);
Maurizio.

in parole povere, una procedura è una funzione che ha restituisce void???
nel lng pascal si .....
una funzione svolge un determinato compito restituendo il risultato,
quindi sai cosa può essere successo
una procedura non restituisce nulla... e tu non saprai mai niente
sull'esito dell'operazione
Antonio
Newsgroup: it.comp.lang.c
Titolo: Per Mox

Ciao Mox, ho provato il tuo codice, ma non realizza quello che ho scritto
io.
Ora ti spiego: Il tuo codice stampa a video 10 volte il primo elelento di un
array di 10 elementi, poi il 10 volte il secondo ecc.....
io volevo che mi stampasse i primi 5 elementi, poi cliccando su invio mi
stampasse gli altri 5.
Io ci sto perdendo la testa, puoi aiutarmi?
PS: Questo è il tuo codice:
#define STEP 10;
int start, stop, max=BIG_NUMBER, i;
char * dato[BIG_NUMBER];
/* immaginiamo max settato al massimo numero di entry */
start = 0;
stop = start + STEP;
for (i=0; i<max; i++) {
   for (start;start <= stop || start < max; start++)
       stampa(dato[start]);
   stop = start + STEP;
   while(getchar() != +);
}
GRAZIE


Scusate ancora l'intrusione ma non ho saputo resistere a dare un mio
contributo.
Ciao
intruso
--------------------------------
Inviato via 
http://usenet.libero.it

 for (start;start <= stop && start < max; start++)
L'ho detto che non l'ho provato :P  Grazie della correzione.
Purtroppo invertire gli OR con gli AND non e' cosi' raro come errore, per me 
intendo :P
-- 
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."

Newsgroup: it.comp.lang.c
Titolo: [?]Djgpp + Win2000

Salve a tutti , ho installato Djgpp su Win2000 ,  a parte che non funziona
il mouse , ovvero
se punto la voce file o edit ect. il menů non compare , ma sopratutto quando
creo l'+exe con F8 , Rhide si chiude con un errore ntvdm(Nt virtual dos
machine) cosa posso fare , le
variabili
le ho impostate .
Grazie 1000
Cioa Roberto



Nulla: djgpp non funziona con win2000, pare.
-- 
 Ciao, Bianco.
 Reply to luca.bianco (at) 
tiscalinet.it

Newsgroup: it.comp.lang.c
Titolo: Accelerazione grafica

Qualcuno saprebbe dirmi che cosa fa realmente un acceleratore grafico 2D
(non 3D :))?
Cosa accelera veramente?
Forse è una cosa simile alla tecnica di Double Buffering?
E' possibile utilizzare l'acceleratore direttamente come si fa con la
modalità 13h o VESA?
Grazie
Ciao

 con la modalità 13h o VESA?
  Dipende dall'acceleratore. In linea di massima, qualche cosa che
interagisce con esso deve esserci, ad un qualsiasi livello...
	Alla prossima,
		Marco
PS Ed il C? ;)

modalità 13h o VESA?
Normalmente le schede (le 2D, per il 3D il discorso è diverso) dovrebbero
essere in grado di sfruttare la loro accelerazione senza richiedere alcun
lavoro aggiuntivo al programmatore. Esistono molti casi però in cui è
necessario affidarsi ai driver specifici della scheda (Win, Linux) per
poterne sfruttare le potenzialità.
Ciao, Giuseppe
---------------------------------------------------------------------------
_Guybrush su IRCNet canale #programmazione
---------------------------------------------------------------------------
Newsgroup: it.comp.lang.c
Titolo: Implementazione liste statiche

Su un'architettura embedded dove non ho malloc() e sistema operativo,
stavo valutando la possibilità di non farmi mancare le liste (molto
comode in molti casi), naturalmente implementandole in modo statico.
Avete qualche codice già fatto da propormi?
Stavo guardando il codice nel file list.h del progetto Bertos
(
www.bertos.org
). Il link al codice è:
http://dev.bertos.org/doxygen/list_8h_source.html
A parte due funzioni (definite INLINE), è tutto generico (indipendente
dal tipo di nodo della lista) e abbastanza efficiente. Gli unici due
problemi:
- nella propria struttura dati bisogna includere anche un membro Node
- bisogna inizializzare la lista con la macro LIST_INIT().
Inoltre mi sembra che il membro Node della propria struttura debba
essere definito come primo membro, altrimenti bisognerà modificare
qualcosa utilizzando qualcosa tipo containerof().
Esiste qualcosa di meglio di già fatto? Qualche suggerimento?

 Avete qualche codice gi� fatto da propormi?
Io mi trovo estremamente bene con le kernel list di linux.
http://isis.poly.edu/kulesh/stuff/src/klist/
hth,
Lokar 

 
http://isis.poly.edu/kulesh/stuff/src/klist/
Perfetto, non avevo mai pensato a cercare nel kernel di linux :))

 
http://isis.poly.edu/kulesh/stuff/src/klist/
Stavo guardando meglio l'implementazione fatta nel kernel e devo
dire che è molto simile a quella utilizzata nel progetto Bertos da
me citata.
Si utilizza sempre il solito trucco del container_of() per ottenere
l'elemento della lista a partire da un suo membro (quello che
memorizza
i link al nodo precedente e successivo).
Il kernel sfrutta le funzioni inline, mentre Bertos sfrutta molto le
macro.
A parte questo il kernel, secondo me, pecca nel dichiarare la lista
con il tipo definito dall'utente. Nell'esempio alla pagina da te
citata,
la lista è definita:
  struct kool_list mylist;
Se non ho capito male, però, il primo elemento è "fittizio", nel senso
che
viene usato solo come "testa" della lista, quindi per i suoi puntatori
next
e prev. Il primo elemento aggiunto alla lista sarà un'altra struct
kool_list.
Quindi, se struct kool_list occupa un bel po' di byte, questi verrano
persi.
Molto più intelligentemente Bertos permette di definire la lista come
il corrispettivo struct list_head di linux (quindi allocando lo spazio
per i
soli puntatori next e prev). Probabilmente si può fare anche con
l'implementazione di linux, ma non ne sono sicuro.
Non ho capito a cosa servono tutte quelle funzioni che terminano con
_rcu.
Qualcuno mi può illuminare?
Newsgroup: it.comp.lang.c
Titolo: ancora main (argc, argv)

se voglio passare un argomento numerico alla mia main come devo fare visto
che argv e' una stringa???
ad esempio vorrei scrivere :main file 10 dove 10 e' il decimo carattere
nel file "file" 
grazie a tutti
              Non sara' ne' il Fuoco ne' l'Acqua
                ne' l'Aria ne' la Terra
                 a fermarmi ma una Donna.
                   Jonathan
--
Posted from 
mailer.fisica.unipg.it
 [141.250.2.1]
via Mailgate.ORG Server - 
http://www.mailgate.org


gli passi la stringa "10" e da codice la converti in valore numerico con la
atoi
ciao.

 che argv e' una stringa???
Con una trasformazione da stringa a numero (vedi FAQ in corso d'opera o un
libro sul C).
--
Alessandro Monti

devo fare visto che argv e' una stringa???
Lo devi convertire con una delle varie funzioni di stdlib.h : atoi,
atol, etc...
ciao

 che argv e' una stringa???
Sulla linea di comando il numero lo passi come caratteri e nel programma
lo converti nuovamente in numero con la funzione standard atoi().
EMG

Newsgroup: it.comp.lang.c
Titolo: Nessuno mi da un suggerimento?

Salve.
C'e' un mio post con subject "un aiuto per le funzioni".
Nessuno mi puo' rispondere?
--
Posted from 
mail.tin.it
 [194.243.154.49]
via Mailgate.ORG Server - 
http://www.mailgate.org


Da quello che mi pare di aver capito non riesci recuperare i dati con la
sola chiamata della funzione, il tuo discorso non mi era molto chiaro :-/
Non puoi crearti un record con tutti i dati che ti interessano e creare una
funzione che ti ritorni un puntatore a questo record?
CIAO PIETRO
-- 
E-Mail: 
mag...@enet.it
Linux, the OS of a GNU generation

Newsgroup: it.comp.lang.c
Titolo: Aiuto MOUSE

Ho un programma già fatto, come faccio a visualizzare e utilizzare il mouse,
a mappare lo schero e quando clicco su una certa coordinata a far partire
l'evento collegato
Tutto questo in ANSI C
trun...@libero.it


Purtroppo il C standard non implementa né il concetto di mouse né quello
di evento.
EMG

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

C'è qualcuno che sa indicarmi un buon testo di esercizi di linguaggio c già
svolti?
Grazie a chi risponderà
Matilde

matilde vorrei aiutarti ma ho provato anch'io ad informarmi, sono sincero,
se riceverai risposte positive sono il primo a comperarlo...non puoi nemmeno
immaginare da quanto tempo lo sto cercando...
ciao duido
-- 
Posted from  [62.98.92.224] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Prova a vedere libri rivolti per studenti di università che iniziano a Programmare in C; li spesso ci sono parecchi esercizi ed
esempi che possono parer stupidi...ma che aiutano parecchio!
Ciao SIMO
--
__________________
www.sasim.net


Prova a vedere libri rivolti per studenti di università che iniziano a Programmare in C; li spesso ci sono parecchi esercizi ed
esempi che possono parer stupidi...ma che aiutano parecchio!
Ciao SIMO
--
__________________
www.sasim.net

Newsgroup: it.comp.lang.c
Titolo: Engine Isometrico

Ciao a tutti , ho un problema da sottoporre...
Uso il Borland C++ 3.0 ed
in pratica ho scaricato un engine isometrico da internet , esso lavora in
320x200x256 (modalitā 0x13) sto tentando di portare l' intero motore in
640x480x256 ma stranamente dopo aver settato questa risoluzione (con
Svga256.bgi e quindi initgraph) tutto funzione normalmente tranne che
l'immagine viene "specchiata" nei secondi 320 pixel dello schermo e non
supera i 100 pixel di lunghezza...
pių o meno cosė:
0                320            640
|-------------------|----------------|
|       - - \             /--        |
|             \          /           |
-                                    -100
|                                    |
|                                    |
|                                    |
|                                    |
|                                    |
.                                    .
.                                    .
La routine usa un schermo virtuale per disegnare e poi "flippa" il tutto su
schermo...
Grazie
IronMike

Devi fare attenzione. Il mappaggio della memoria e' diverso nei due modi.
In 320x200x256 la memoria e' lineare (occhio che non sono un esperto!)
mentre in risoluzione piu' alta non e' piu' cosi'. Quindi non puoi usare
le stesse routine! Pero' non so dirti molto di piu'! 
Comunque usare le librerie bgi per un gioco non e' proprio la cosa piu'
veloce che puoi trovare! ;)
		Umberto Michelucci
IronMike (
rmic...@mail.media.it
) wrote:
:: Ciao a tutti , ho un problema da sottoporre...

:: pių o meno cosė:


:: Grazie
:: IronMike
--
			Umberto Michelucci
-----------------------------------------------------------------------
Umberto Michelucci   	    Theoretische Phyisk III
Room: 443		    Elektronische Korrelationen und Magnetismus
Phone: 
(+49) 821 598 3711
   Institut fuer Physik
Fax: 
(+49) 821 598 3725
     D-86135 Augsburg, Germany
E-mail: 
Umberto.M...@Physik.Uni-Augsburg.DE
http://www.physik.uni-augsburg.de/~umich
-----------------------------------------------------------------------

le stesse routine! Pero' non so dirti molto di piu'! 
Infatti e' cosi', per l'accesso alla memoria video in modalita' 640x480x256 si
adoperano delle routine appartenenti allo standard VESA, in quanto essa e'
"mappata" per pagine.
Invece in modalita' 320x200x256 basta puntare alla zona di 64000 byte (320x200)
che inizia all'indirizzo 0xA0000.
Il tuo problema deriva senz'altro dall'aver utilizzato una routine che scrive in
modo lineare in una memoria che non prevede l'accesso lineare.
--
Posted from 
itaca.ulysse.it
 [195.223.254.1]
via Mailgate.ORG Server - 
http://www.mailgate.org

Puoi studiarti come funziona una SVGA (strada ardua ma non impossibile)
oppure visto che hai gia' un buffer lineare, suddividilo in fette da max
64K(cioe' max 100 linee circa da 640 pixel) e usa putimage per ricomporre il
video.
Sara' sicuramente moooolto lento.
ciao
donCiccio
Newsgroup: it.comp.lang.c
Titolo: VC5.lib -> BC5.lib HELP

Salve a tutti.
Mi trovo nella necessita' di utilizzare librerie Visual C++ 5.0  con il
Borland C++ 5.0.
Il formato e' diverso tra i due compilatori e lo stesso dicasi per gli
object files (dispongo
anche dei .obj delle librerie).
L'unico sistema di conversione che conosco e' implib che lavora pero' sui
dll.
Nessuno e' in grado di darmi una mano? Grazie.



...

Che ne sappia io i formati dei file .OBJ sono differenti anche se il Linker
della Borland accetta quelli di Microsoft.
Se hai i sorgenti penso che la cosa sia leggermente più fattibile anche se
io ho avuto enormi problemi (al punto di rinunciarvi!) a compilare i
sorgenti di esempio di DirectX 5 e dell'Internet Client SDK che sono stati
appositamente progettati per essere compilati con il Visual C++ 5.0.
Tieni conto che la versione 5.02 (l'ultima release disponibile) di Borland
supporta a mala pena la libreria MFC versione 4.2 e che per avere la
compatibilità con i sorgenti di MFC 4.2, Borland ha introdotto una marea di
direttive di compilazione all'interno dei file .h e .cpp (i sorgenti di
MFC).
Implib è l'unico ponte di collegamento con Microsoft, visto che i file .LIB
di Microsoft sono incompatibili con quelli di Borland (ma solo a 32 bit,
perché a 16 bit sono identici). Pertanto va usato ogni qualvolta si ha una
DLL e tale .DLL va usata per compilare un programma che ne fa uso.
Il Borland C Builder 3.0 ha un supporto leggermente migliore per MFC, ma si
estende solo alla Active Template Library (ATL) e al COM così come viene
riportato nel sito:
http://www.borland.com/bcppbuilder/features.html
Leggi la documentazione in linea del compilatore su alcune operazioni da
eseguire per compilare i sorgenti MFC.
Saluti.
Jo Parrello.
http://space.tin.it/computer/giparrel
jopa...@tin.it

Borland C++ 5.0.
non ho mai visto il BC e non so se sia in grado di utilizzare gli obj
MS, pero' anche amettendo che tu riesca a trasformarli in un formato
accettabile dal BC dubito che riuscirai mai a fare il link perche' gli
obj compilati dal VC richiederanno le funzioni delle librerie standard
MS e difficilmente le libreria del BC andranno bene. Senza contare poi
che se c'e' del C++ ci sono ancora altri problemi legati ad esempio
alla codifica dei nomi.
Gianpaolo Bottin
- Live Long and Prosper -

 Nessuno e' in grado di darmi una mano? Grazie.
non si puo`, il borland compila gli obj a 32 bit in un modo simile a quello
a 16 bit, invece il VC ha cambiato totalmente formato, cercando di
assomigliare di + a quelli unix, ma ovviamente rimanendo incompatibile anche
con questi.
---
Ranger, togli .fr dal mio indirizzo per rispondere
http://members.tripod.com/%7Eranger_rg/
Newsgroup: it.comp.lang.c
Titolo: salve a tutti

Sono nuovo del NG, e siccome devo imparare il linguaggio C senza saperne
niente, ringrazio qualunque buon'anima abbia intenzione di rispondere alle
mie banali domande e mi sappia aiutare quando sono bloccato.
Ho preso una guida ed ho iniziato a consultarla, ed ho appreso le nozioni di
dichiararem modificare e stampare variabili .. ma è questo 'stampare' che
non mi convince e mi lascia dei dubbi.. cosa intende per stampare?
Vi copio quello che dice la mia 'guida':
"I compilatori C richiedono un listato scritto in formato testo, che si puo'
scrivere con un editor qualsiasi o con quello integrato nel compilatore."
(che cosa devo usare io? un qualsiasi editor testuale? anche un banale
blocco note? e se no, dove posso trovare quello che mi serve?)
"Questo file di testo, che di solito ha come suffisso .C, (?) viene
compilato e trasformato in un file oggetto (o modulo), che ha come suffisso
.OBJ, il quale a sua volta deve essere linkato con un linker per divenire un
file eseguibile .EXE". (file .exe che io reindirizzo al .obj in quale modo?)
In questo modo si possono linkare assieme file oggetto prodotti da vari
listati in c, o anche da linguaggi diversi, per formare l'eseguibile unico
finale.
insomma, ci sono delle cose che mi sono un po' oscure e mi abbattono
moralmente per andare avanti.. o forse le spiegazioni le troverò proprio
avanti?
Perdonate ancora la banalità delle mie domande, e grazie a chi mi risponde
Gioba

Gioba
Ciao,
Maurizio

"Maurizio Avilia" ha scritto:
|| Piu' che stampare il termine a mio parere piu' corretto sarebbe
[tagl, spacc]
ti ringrazio, sei stato prezioso ma soprattutto molto gentile
ti fa onore :)
buonanotte
Gioba

Newsgroup: it.comp.lang.c
Titolo: Void problem e puntatori.

Hello there!
perche' non funziona?
void
takedata (char *s, int a, int x, int y, void *z)
{
  int c, d;
  char *t;
  t = s;
  d = 0;
  move (x, y);
  while (((c = getch ()) != '\n' && c != '\t') && (d <= a))
    {
      *s = c;
      s++;
      d++;
    }
  *s = '\0';
    if (z==&pp->Rendita || z ==&pp->Aliquota)    /* Qui vede se e' una
richiesta double*/
  *(double *)z=atof(t);   /* se si dovrebbe fare la conversione e
copiare t su z  */
  else
  strcpy(z,t);  /*altrimenti fa un semplice strcpy */
}
*p e *pp sono puntatori alle seguenti structs:
struct anagrafica {
        char Nome[25];
        char Cognome[25];
        char Indirizzo[30];
        char Comune[20];
};
struct catasto {
        char partita[5];
        char fg[4];
        char part[4];
        float Rendita;
        float Aliquota;
        char prima[2];
} immo[4];
int xy[20] = {
        5,9,                                THESE ARE COORDINATES for
the move()    
        5,48,
        7,14,
        7,46,
        13,60,
        15,21,
        15,46,
        15,51
};
se faccio la chiamata:
takedata(buffer,25,10,10,p->Nome)                           /* WORKING
*/
se invece chiamo:
                                                   /*   NOT WORKING */
takedata(buffer,25,15,15,&pp->Aliquota)            
Greetings
                            Mike

RISOLTO!!
Grazie comunque.
                        Michele
Newsgroup: it.comp.lang.c
Titolo: problemi con le socket

con la funzione select() riesco a sapere prima se ci sono dati in arrivo
o no da una socket, ma se la connessione è stata chiusa dall'altra parte,
select mi dice che ho dati in ricezione, (facendomi entrare, avendo messo
"while ci sono dati", in un ciclo infinito) anche se in realtà non cè
nulla...
quindi, volevo sapere se c'era e qual era (e come funzionava) 
la funzione per controllare se la connessione cè ancora o è stata 
chiusa dall'altra parte
Grazie tutti
PS. ma si dice LE o I socket ?

 chiusa dall'altra parte
Sei Off-Topic, ad ogni modo controlla se la chiamata con cui leggi (es recv)
ritorna 0: se ritorna 0 allora significa che l'altra parte ha chiuso.
Saluti,
Lanugo

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

Salve devo iniziare a scrivere una applicazione che gestisca una
comunicazione su rs485, qualcuno ha degli esempi a riguardo? vanno bene
anche esempi di comunicazione su rs232
grazie Gianluca
--------------------------------
Inviato via 
http://usenet.libero.it

Sono identiche, cambiano solo elettricamente!!
ciao Biagio

Newsgroup: it.comp.lang.c
Titolo: getchar()

Buongiorno a tutti.
Perdonate la mia ignoranza, devo risolvere un problemuccio ma non
ne vengo fuori.
Vorrei fare una cosa di questo tipo:
# define MY_PGUP   339	//pag. up
....... 
.....
 int K_Press;
  K_Press=getchar();
   switch(K_Press)            
      {
         case(MY_PGUP):
             if(Sel_Item<Choice_Co.....
ecc.
ma non riesco a:
1 uscire da getchar() senza premere invio
2 confrontare il valore di K_Press con MY_PGUP
in altre parole, vorrei spostarmi usando i tasti di rotta.
qualche suggerimento?
grazie -S
--  
Postato da Virgilio Newsgroup: scopri i nuovi gruppi 
Eros, foto e video a 
http://newsgroup.eros.virgilio.it

Ciao, hai omesso l'ambiente in cui stai programmando, in ogni caso se ti 
trovi in ambiente dos puoi usare, ma non è standard, la getch() anziché al 
getchar(). Tale funzione però, quando premi un tasto speciale come ad 
esempio le frecce o pgup e pgdown, si comporta come se venissero premuti 2 
tasti in sequenza; il primo valore ritornato ti informa che è stato premuto 
un tasto speciale mentre il secondo ti permette di riconoscere il tasto 
quindi riconosciuto che si tratta di un tasto speciale dovrai richiamare di 
novo la getch().
Se invece ti trovi in ambiente linux/unix puoi usare la getchar() ma devi 
modificare il funzionamento del driver del terminale che stai usando 
sostituendo la modalità "buffered" con la modalità "raw". Questo puoi farlo 
con il comando o la chiamata di sistema "stty". Ricordati di tornare in 
modalità "buffered" al termine del tuo programma.
Spero di esserti stato utile.
Un saluto.
Maxime 

 trovi in ambiente dos puoi usare, ma non è standard,
cut
E' vero, l' ambiente è LCC-Win32.
getch() non è supportata; comunque, se fosse supportata, non
riesco ad immaginare il meccanismo che permette di uscire senza
premere invio.
grazie - S


risolto, basta usare getche() che accetta stdin senza
bufferizzazione.

Newsgroup: it.comp.lang.c
Titolo: C preprocessor, inclusione file a compile-time

Salve a tutti
vorrei sapere se è possibile, tramite il preprocessore, includere un
generico file di testo (non codice c), trasformato come stringa, in un
programma.
in pratica io vorrei avere qualcosa come
~~file.txt~~
Si sta come, d'autunno,
sugli alberi, le foglie.
~~~~~~~~~~~~
~~file.c~~
#include <stdio.h>
#define FILE_AS_STRING(filename) "magia nera"
int main() {
    char* stringa = FILE_AS_STRING("file.txt");
    printf("%s\n", stringa);
}
~~~~~~~~
e ottenere (in questo caso) come output lo stesso file.txt
Sapete aiutarmi? Ho provato con #include e stringification, ma non
sono arrivato a niente.
(l'unica altra soluzione che mi viene in testa coinvolge l'uso di sed,
ma preferirei evitarla)

Penso che in una situazione del genere la cosa migliore sia fare un 
piccolo filtro che converte il file di testo in un file C.
E.

 programma.
Ma perché  dovresti fare una cosa del genere ?
Giorgio

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

Salve a tutti,
chiedo conferma: gcc esegue a compile time le operazioni che trova nelle
define?:
#define a 100
#define b a/10
b viene espanso direttamente in 10, oppure in 100/10?
Grazie


Le direttive del preprocessore vengono eseguite PRIMA della compilazione del
codice e avviene la sostituzione dei valori. Quindi b viene sostituita con
100/10 e non con il risultato.
Avviene semplicemente una sostituzione della costante simbolica.
--------------------------------
Inviato via 
http://usenet.libero.it

> Le direttive del preprocessore vengono eseguite PRIMA della compilazione
del
Intendevo tutto il ciclo completo di compilazione.. mi scuso, 'espanso'
risulta fuorviante in questo caso.. :)
cmq pare che gcc (studiando alcuni programmi) ottimizzi il codice
sostituendo 100/10 con 10.. meglio cosě...

> ... (studiando alcuni programmi) ottimizzi il codice
non gcc.. io.. :)

 Avviene semplicemente una sostituzione della costante simbolica.
Poi il compilatore e' *eventualmente* (credo) libero di svolgere il 
calcolo al momento della compilazione in modo da evitare di dover 
calcolare ogni volta a run-time 100/10 che, essendo operazione tra 
valori costanti, fa sempre 10. In genere questo passaggio avviene.

Newsgroup: it.comp.lang.c
Titolo: Errore con strpbrk()

So che sicuramente è un errore stupido, ma potete dirmi cosa non va con 
questo codice?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void pulisci(char *str1,char *str2);
int main()
{
    char *msg="lalalala\0";
    char *togli="a\0";
    pulisci(msg,togli);
    return 0;
}
void pulisci(char *str1,char *str2)
{
     char *xx;
     while((xx=strpbrk(str1,str2))!=NULL)
            *xx='z';    //quando inserisco questa istruzione
                            //compila ma quando eseguo mi da errore
}

 }
Luca
-- 
Home: 
http://kronoz.cjb.net
Il piu` bel momento dell'amore e` quando ci si illude che duri per 
sempre; il piu` brutto, quando ci si accorge che dura da troppo.
Newsgroup: it.comp.lang.c
Titolo: Compilatore per windows progs Server\Client

Ho provato alcuni compilatori C per windows, tra i quali Lcc e DevC++, 
tuttavia non ne trovo uno che sia completo come il gcc per linux.
Devo creare programmi che funzionino da server, client, produrre 
parallelismi con fork etc etc.
Sotto linux non ho il minimo problema, tuttavia gli stessi codici 
compilati sui programmi di cui sopra mi restituiscono diversi problemi.
La mancanza di alcuni headers, ad esempio. Ho copiato manualmente dalle 
librerie del gcc, tuttavia la compilazione restituisce comunque alcuni 
errori. 
Ripeto, lo stesso codice (per semplice che sia) sotto linux viene 
compilato perfettamente e sotto windows no. 
Un compilatore completo?
Ora sto aspettando che un amico mi presti il borland C++ e un altro il 
Visual Studio (penultima versione). Poi vedrò se sia il caso di 
acquistare uno di questi eventualmente. 
In rete si può trovare qualcosa di completo?
Grazie
-- 
-Diego (Atos)-
-L'uomo è superiore agli animali-
-Fanno eccezione il nano e la giraffa-
-A.Bergonzoni-
-Per rispondere in privato potare "POTA" dall'indirizzo-

 Un compilatore completo?
Non hai mai pensato che i sistemi operativi sono diversi? Che ognuno fa cose
diverse in maniere diverse? Stai programmando in C, non in Java. Se vuoi
fare thread e socket in maniera portabile prenditi un bel manuale di C Ansi
e vedi come si fa (ROTFL).
Cmq cerca il compilatore Cygnus per Windows (cygwin o qualcosa del genere).
Fa le cose arcane che servono a te.
--- bye

Newsgroup: it.comp.lang.c
Titolo: qualcuno mi consiglia?

ciao a tutti... è da poco che ho cominciato a prendere seriamente i C... 
e avrei bisogno di qualche consiglio riguardo a compilatori freeware che 
posso trovare su internet (preciso C, non C++)...
qualcuno ha la più pallida idea di dove possa trovarli? 
ringrazio in anticipo e mi scuso (sempre in anticipo) se questa domanda è 
già stata fatta... ma non sono ancora riuscito a leggere tutti i post...
RoniN

qualcuno ha la più pallida idea di dove possa trovarli? 
Suggerirei :
Borland Turbo C 2.01 (essendo una versione vecchia e' free)
http://www.c-for-dummies.com/compilers/TurboC_2.01.zip
Come ti ho detto e' vecchiotto pero' e' molto piccolo da scaricare.
Altrimenti il DJGPP che trovi presso 
http://www.delorie.com/djgpp/
ciao

 qualcuno ha la piů pallida idea di dove possa trovarli?
Prendi il DJGPP per DOS che compila sia C che C++ all'indirizzo
http://www.delorie.com/djgpp
.
EMG
Newsgroup: it.comp.lang.c
Titolo: Ravvolgimento file

Leggo un file di testo aperto:
f = fopen(filename, "r")
e lo leggo con un while fino a EOF.
Se devo rileggerlo, non è necessario chiuderlo, vero?
Va "riavvolto?"
E' corretto: rewind(f);
In questo modo posso ricominciare a leggere tutto dall'inizio come se lo
avessi appena aperto con la fopen.
Giusto?

 Giusto?
man rewind



si, e forse sei interessato anche all'uso di fseek(), che ti consente di
mettere il cursore interno al file in qualunque posizione tu voglia
(inizio,fine,in mezzo,a treqquarti,a settequindicesimi..etc..etc..).
Come da manuale:
	The rewind function [...] is equivalent to:
              (void)fseek(stream, 0L, SEEK_SET)
Ciao
Newsgroup: it.comp.lang.c
Titolo: esiste un modo per programmare PLC con C?

come da oggetto
grazie a tutti
by Lujx

Si che io sappia è possibilissimo basta che tu sappia interfacciare il
tuo pc con il PLC e il gioco è fatto solo che dovresti sapere i codici
binari delle operazioni da inviare alla cpu del plc o se non altro come
avviene la comunicazione tra una periferica di programmazione (il
tastierino) e il plc vero e proprio. Comunque dovresti creare una specie
di compilatore che invii il risultato alla porta collegata al plc e il
gioco è fatto.
non so se sono stato chiaro spero di si nel caso contrario fammi sapere
anche nel caso avessi trovato una diversa soluzione
Ciao e buon lavoro


Newsgroup: it.comp.lang.c
Titolo: Play file wave sotto windows

Non so se sono un po' OT ma avrei bisogno di mandare in play dei file wave
in c sotto windows. Avete un link, doc o qualcosa da consigliarmi? Sotto
linux č semplicissimo fare una cosa del genere ma con windows... non ho idea
da dove cominciare.
Michele

Io non so risponderti, prova in it.comp.programmare.win32
 
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

> [...]qualcosa da consigliarmi?
Vedi l'API di Windows PlaySound.
Continua su it.comp.programmare.win32.
Newsgroup: it.comp.lang.c
Titolo: selection sort che non funziona

Ho il seguente codice che, negli intenti, dovrebbe ordinarmi,
in senso crescente, un array di n interi.
L'algoritmo e' il 'selection sort'.
Ecco l'output che ho:
Elementi del vettore: 5
6
8
0
3
12
Il vettore ordinato e': 8 8 8 8 8
Non riesco a capire dov'è l'errore anche perché
ho preso il codice da internet.
/*** INIZIO CODICE ***/
#include <stdio.h>
#define NMAX 100
int main (int argc, char* argv[])
{
     int v[NMAX];
     int j, n, i;
     int pos;  /* pos: posizione del minimo */
     int appo; /* variabile d'appoggio */
     int min;
     printf ("Elementi del vettore: ");
     scanf ("%d", &n);
     /* riempimento vettore */
     for (j=0; j<n; j++)
         scanf ("%d", &v[j]);
     /* ordinamento */
     for (j=0; j<n; j++) {
         pos = j; /* suppongo che il minimo si trovi alla posizione j */ 
         for (i=j+1; i<n; i++) /* scandiamo da j+1 a n */
           {
                if ( v[i] < min )
                        pos=i;
               /* scambia l'elemento */
               v[pos]=appo;
               v[j]=v[pos];
               appo=v[j];
           }
    }
      printf ("\nIl vettore ordinato e': ");
      for (i=0;i<n;i++)
      {
          printf ("%d ", v[i]);
      }
       printf ("\n");
           system ("PAUSE");
           return 0;
}

                if ( v[i] < min )
questa istruzione è stata modificato con
               if ( v[i] < v[pos] )
e ancora non funziona


prova cosi'
#include <stdio.h>
#define NMAX 100
int main (int argc, char* argv[])
{
     int v[NMAX];
     int j, n, i;
     int pos;  /* pos: posizione del minimo */
     int appo; /* variabile d'appoggio */
     int min;
     printf ("Elementi del vettore: ");
     scanf ("%d", &n);
     /* riempimento vettore */
     for (j=0; j<n; j++)
         scanf ("%d", &v[j]);
     /* ordinamento */
     for (j=0; j<n; j++)
     {
	for (i=j+1; i<n; i++) /* scandiamo da j+1 a n */
	  {
	       if ( v[i] < v[j]  )
	       {
		min=v[i];
		v[i]=v[j];
		v[j]=min;
	       }
	  }
    }
      printf ("\nIl vettore ordinato e': ");
      for (i=0;i<n;i++)
      {
	 printf ("%d ", v[i]);
      }
       printf ("\n");
           system ("PAUSE");
           return 0;
}
ciao
-- 
-------------------------------
per scrivere in privato
togliere "1975nosp"
to reply remove "1975nosp"

l'algoritmo di ordinamento sort:
for(i=0; i<n-1; i++)  //termino il ciclo a n-1 perchè l'ultimo numero
risulta già ordinato
{
   min=v[i];
   pos=i;
   for(j=i+1; j<n; j++)
     if(v[j]<min)
      {
      	min=v[j];
         pos=j;
      }
      if(pos!=i)
      {
      	 v[pos]=v[i];
         v[i]=min;
      }
}
l'ho provato non dovrebbe dare problemi!ciaoooo...

 l'ho provato non dovrebbe dare problemi!ciaoooo...
perfetto, questo codice funziona.
grazie a tutti.

                appo=v[j];
questo non scambia l'elemento come suggerisce il commento, lavori di
obfuscated code ? :)
Ciao ciao
Newsgroup: it.comp.lang.c
Titolo: Array di stringhe e funzioni

Salve, sto imparando il C, ma non riesco ancora a capire bene come
funziona il triangolo funzioni-puntatori-stringhe XD
In pratica ho scritto un esercizio che prende una stringa in input e
la assegna ad una variabile. Poi tramite una funzione il contenuto
della variabile deve essere messo in un altra variabile.
Codice: 
http://sprunge.us/OZLA?c
Un semplicissimo esercizio insomma, ma non capisco l'errore che ricevo
quando vado a compilare il sorgente:
gcc -o lol lol.c
lol.c: In function ‘copy’:
lol.c:24: warning: return makes integer from pointer without a cast
Qualcuno potrebbe darmi una spiegazione?
Grazie in anticipo.

 lol.c:24: warning: return makes integer from pointer without a cast
# 5 char copy (char *word);
char* copy (const char *); /* il const serve se vuoi usare la funzione
                              con un stringliteral: copy("essempio")*/
# 12  scanf("%s", s);
# 13  copy(s);
if(scanf("%49s", s) == 1)
        copy(s);
/* se vuoi di piu di una parola: */ 
if(scanf("%49[^\n]", s) == 1)
        copy(s);
# 17  char copy (char *word) 
char* copy (const char *word) 
# 21  string = (char *) malloc(strlen(word)*sizeof(int));
string = malloc(strlen(word) * sizeof(char) + 1);
/* sizeof(char) e' sempre 1 (6.5.3.4p3)
   +1 serve per il '\0' alla fine    */
string = malloc(strlen(word) + 1);
# 22  strcpy(string, word);
if(string) strcpy(string, word);
cc
Newsgroup: it.comp.lang.c
Titolo: perchè non va ?

Salve    non riesco ad usare le funzioni per gestire i file , perchè ottengo
errori in fase di esecuzione, mi spiego in particolare per esempio
facendo riferimento  a questo codice :
#include  <stdio.h>
FILE  *fd1;
main()
{  char buf ;
fd1=fopen( "sorgente","r");
fscanf (fd1,"%c", buf);
printf ("%c", buf);
}                          Uso il comp gnu sotto win, compilo senza pb il
sorgente, ma quando
vado ad eseguire il pg ottengo il seguente errore : 1000) EXCEPTION :
STATUS_ACCES_VIOLATION
Che cavolo non va ?
grazie per l ' attenzione

Devi passare alla fscanf l'indirizzo di buf, cioe'
        fscanf(..., &buf).
Ciao.
Antonio Donatiello
Newsgroup: it.comp.lang.c
Titolo: lcc32 - grafica ? aiuto !

ho scaricato un compilatore c gratuito da
http://www.cs.virginia.edu/~lcc-win32/
qualcuno sa dirmi dove posso trovare delle librerie o plug-in (non so
come chiamarle) per poter fare della grafica semplice (linee, punti,
rettangoli, cerchi ecc.) con questo compilatore ?
oppure qualcuno conosce un compilatore gratuito migliore (esiste solo
DJGPP ??) con cui poter fare questo genere di grafica ?
ciao a tutti e grazie
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 ciao a tutti e grazie
GTK+, QT (in C++, per Windows devi pagare, per Linux sono gratis, se non 
sviluppi applicazioni commerciali), Librerie grafiche di Windows, DirectX, 
OpenGL, SDL, Allegro, le librerie grafiche che ti fornisce/forniva (non e' 
che lo usi molto) il Borland ...
Scusa, ma in 15 secondi queste mi sono venute in mente.
Il C standard non contempla la grafica, ma ci sono tante librerie che te lo 
permettono (quelle che ti ho elencato sono quelle per cui sono sicuro 
esiste un porting/sono native per windows).
-- 
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."

esiste un porting/sono native per windows).
programmare le QT col C è un suicidio :)
--
Rhymes (
rhymes_...@myself.com
)
http://www26.brinkster.com/rhymes
http://bw-crema.blogspot.com

 esiste un porting/sono native per windows).
-- 


 grazie
Silvio o Elena, tutte le librerie elencate sono free oppure ti vengono gia' 
fornite con Windows.
Eccoti alcuni link (per gli altri ricorda che Google e' tuo amico):
- GTK+:    
http://www.gtk.org
- Allegro: 
http://www.allegro.cc
- SDL:     
http://www.libsdl.org
- Borland: 
http://www.borland.org
Per avere informazioni dettagliate, chiedi su it.comp.programmare.win32, li 
si parla proprio di programmazione sotto Window$ e ti sapranno dare tutte 
le informazioni che cerchi su come utilizzare queste librerie e quelle 
native di Window$ (in particolare su queste, visto che da quanto capito e' 
tutto quello che ti occorre).
f/up settato su it.comp.programmare.win32 (con un po' di riassunto del 
thread)

Newsgroup: it.comp.lang.c
Titolo: Baco gcc o baco mia testa ?

// Debuggando un mio programma ho distillato questo
// mini programmino che segue, che non contiene
// cose esoteriche o "artificiali" e nemmeno puntatori.
// Pero' sotto linux quando lo compilo con
// -O0 (meno O zero) cioe' nessuna ottimizzazione e con
// -O1 (meno O uno)  cioe' un po' di ottimizzaione,
// mi stampa due risultati diversi.
// La cosa mi si presenta sia col gcc 2.95.4 che col 3.0.4.
// Naturalmente a forza di guardarlo potrei essere
// rincoglionito io... Se qualcuno vuol contribuire alla mia sanita'
// mentale o e' curioso il programma  e' questo:
#include<stdio.h>
int main()
{
   int i,j,N, nL[32];
   double x,y, X[32], Y[32];
   N=8;  /* provo per dimensione N=8 (N<=32) */
   /* Inizializzazione di X[] e Y[] a valori +/- a caso
      tra 0 e 1  e  di nL[] a zero. Altri valori vanno
      probabilmente bene lo stesso. (x-(int)x) e' per
      prendere la parte frazionaria  */
   x=0.232;  y=0.9943;
   for (i=0; i<N; i++)
     {
       x=3821.21*x+0.3432;  y=781.89*y+0.776;
       X[i]= x = x - (int) x;
       Y[i]= y = y - (int) y;
       nL[i]=0;
     }
   /* IL DOPPIO CICLO INCRIMINATO:
      per ogni coppia j<i calcolo una funzione simmetrica
      e se il valore e' <= di 0.3 incremento nL[i] e nL[j] */
    for (i=1; i<N; i++)
      for (j=0; j<i; j++)
        {
  	  if ((X[i]*Y[j]+X[j]*Y[i])>0.3) continue;
	  nL[i]++;
           nL[j]++;
        }
    /* STAMPA DEI RISULTATI */
   for (i=0; i<N; i++) printf("%2d ",nL[i]);
   printf("\n");
   return 0;
}
//ciao,
//g

        Y[i]= y = y - (int) y;
Questo non e' codice con UB?


Il bello e' che l'ho introdotto io in un momento di follia,
mantre cercavo di "condensare" il programma originario
per isolare il problema....(in particolare stavo togliendo una rand())
Comunque ho capito quale era il mio problema:
dopo aver predicato su un altro thread della pericolosita'
del confrontare i floating, all'interno di un programma
abbastanza complicato non mi ero accorto che come
caso particolare andavo proprio a confrontare 2 numeri
quasi uguali: uno ottenuto facendo x*y e l'altro
ottenuto facendo x*y (proprio cosi'...).
Alla fine ho messo insieme questo piccolo programmino
dimostrativo (che mi stampa sempre qualcosa, indipendentemente
dall'ottimizzazione scelta) sempre su gcc 2.95 e gcc 3.0.
In pratica inizializzo dei valori X[0..4] e
per i=0..3 pongo D[i]=X[i+1]*X[i];
Cioe' D[0]=X[1]*X[0], D[1]=X[2]*X[1], etc.etc.
Poi, per i=1..4 confronto D[i-1] con X[i]*X[i-1],
ovvero confronto D[0] con X[1]*X[0], D[1] con X[2]*X[1],
etc.etc: sono tutti diversi...
Premesso che l'errore e' mio, pensavo che nella moltiplicazione
(anche quella FPU...) valesse la commutativita'. Apparentemente
non e' cosi'. O no ? Ciao,
Giovanni "sono un pisquano" Resta.
#include<stdio.h>
int main()
{
   int i;
   double  X[8], D[8];
   /* Inizializzo X[0..4], senza UB... */
   for (i=0; i<5; i++)  X[i]=(i+1.2)/(i+4.7);
   /* Inizializzo D[0..3] senza UB... */
   for (i=0; i<4; i++)  D[i]=X[i+1]*X[i];
   for (i=1; i<5; i++)
     if (D[i-1] != X[i]*X[i-1])
        printf("[%d] %g\n",i,D[i-1]-X[i]*X[i-1]);
   return 0;
}
Newsgroup: it.comp.lang.c
Titolo: Codici tasti di direzione

Ciao!
C'è qualcuno che mi sa dire i codici dei tasti direzionali?
Grazie!
Ciao!
-Davide-
-- 
Posted from 
mail5.galactica.it
 [212.41.208.22] (may be forged) 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 C'è qualcuno che mi sa dire i codici dei tasti direzionali?
Credo tu possa trovarli nell'include keys.h del djgpp


i tasti direzionali sono due codici....uno 0  e poi il codice che identifica
il tasto
SU -> 0 + 72
GIU -> 0 + 80
DESTRA -> 0 + 77
SINISTRA -> 0 + 75

Ciao!
C'è qualcuno che mi sa dire i codici dei tasti direzionali?
Grazie!
Ciao!
-Davide-

Newsgroup: it.comp.lang.c
Titolo: Debugger grafico sotto Linux?

Per caso avete o sapete dirmi dove posso trovare un debugger grafico per
Linux ?
Grazie

 wrote in message
3878DFF6...@libero.it...
: Per caso avete o sapete dirmi dove posso trovare un debugger grafico per
: Linux ?
Se hai poche pretese xxdbg, altrimenti KDebug, il primo su
www.gnu.org
l'altro sul sito di KDE, che non ho sottomano
--
____ __         __,_      __  _____
\  _\_ \  ___ _/ / /\  /\/  \/ / _/ It is better to reign in Hell
 \  _ \ \/ _ '/ , |\ VV / / / / _/ Than serve in Heaven.- MILTON
  \_,_/\_\_,_/_/|_| \__/\__/_/_/
      -- the one and only --     e-mail : 
blak...@tiscalinet.it
                                ICQ    : 59394345
The UNIX Guru's View of Sex:
$unzip;strip;touch;finger;mount;fsck;more;yes;umount;sleep

Linux ?
Vai su 
www.freshmeat.net
 e cerca "ddd".