mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c
Titolo: [ OT] SQL

Visto che non esistono newsgroup, qualcuno mi puo consigliare un manuale per
iniziare l' SQL?
Grazie e ciao
Spike

 wrote in message
Oa7g8.55998$fa5.1...@twister2.libero.it...


Newsgroup: it.comp.lang.c
Titolo: [SEMI-OT] Allegro

Salve,
	nelle FAQ della Allegro library ho letto che ne esiste
anche un porting per win32 che usa le DirectX. La FAQ rimandava
alla homepage di Allegro (
www.talula.demon.co.uk/allegro
) per
il link. Purtroppo il sito e' giu'.
C'e' qualcuno che mi puo' indicare dove posso reperire tale
port? Grazie in anticipo. :)
Saluti,
                    __
         Fabio   " '- nowDruid "  Franchello
                  ---'---------
          ---  
snow...@tiscalinet.it
  ---

 wrote in message
389f453a...@news.megasys.it...

cercalo qui:
ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2tk/allegro/

 oppure qui:
http://www.geocities.com/SiliconValley/Vista/6552/l5.html

Newsgroup: it.comp.lang.c
Titolo: Come posso fare per risolvere?

Salve a tutti, utilizzo Djgpp/WinME
ho un problema 
devo fare una funzione che 
passato un vettore char o il suo
 *indirizzo:
char pippo[4]; o char *pippo[]="\0\0\0\0";
o char *pippo[4];
tramite una funzione
void scriviarray( char *a1[]);
mi scriva nel vettore di char
passato tramite la funzione.
Come posso fare?ho tentato
in questo modo, ma senza raggiungere
lo scopo:
char *str[4];
void  scriviarray(char *a1[]);
void main(void){
scriviarray(*pippo);
printf("%s\n",pippo);   /* mi stampa NULL */
 }
void scriviarray(char *a1[]){
gets(a1);}
In pratica mi servirebbe
poter utilizzare una funzione
al posto di una serie di gets();
se inizializzo il vettore di char
char *str="\0\0\0\0"; ottemgo un : 
Error:invalid initializer
Perchč?
Grazie a tutti 
Ciao

Ciao
Ciao.
#######################################
Fabio
fabi...@inwind.it
Studente di Informatica presso
l'Università degli Studi La Sapienza
#######################################

 Come posso fare?
void scriviarray(char *array) {
/* Sperando bene 
questa funzione non sa se 
il puntatore è valido...
*/
    	array[0] = 'C';
    	array[1] = 'I';
    	array[2] = 'A';
    	array[3] = 'O';
    	array[4] = '\0';
}
int main(void) {
  char buffer[5];
  scriviarray(buffer);
  printf("%s", buffer);
}
Newsgroup: it.comp.lang.c
Titolo: La stringa per cancellare lo schermo (finalmente)

Ciao a tutti,
su 
www.linuxquestions.org
 hanno postato
la sequenza di codici escape. Dato che molti
hanno chiesto come si fa per cancellare lo schermo
ne ho approfittato subito. Si potrebbe metterla nelle FAQ al posto
di system ("clear") o system ("cls") per cortesia ?
printf("\033[2J\033[0;0f");
-- 
Bye,
Colossus

 wrote in message
news:bqf811$21fr78$
1...@ID-154800.news.uni-berlin.de

... e se non ho uno schermo ANSI, dici che funziona lo stesso? Secondo
me no.
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 me no.
s/schermo/terminale/
Sorry.


 C:\>iao Angelo
Beh, diciamo che, si', sarebbe utile mettere nelle FAQ un riferimento a 
qualche parte dove ci sia la sequenza dei codici di escape ANSI, 
specificando che il sistema operativo e l'utilizzo o meno di un 
terminale ANSI sono concetti ortogonali :)
-- 
/**
  * Mattia Belletti - Undergraduate student @ 
cs.unibo.it
  * ICQ: 33292311   - email: 
mbel...@cs.unibo.it
  * IRC: BluShine   - site(s): 
http://cs.unibo.it/~mbellett
  * Linux registered user 299762 @ Linux registered machine 213003
  */

Newsgroup: it.comp.lang.c
Titolo: MALLOC E K&R

Ciao a tutti,
possibile che nel K&R si citi la malloc() solo un piccolo trafiletto a pag.
216????

 ha scritto nel messaggio
news:Zz5g8.52267$v7.18...@twister1.libero.it...


216????
a me sembra invece che sia il programma più trattato dal libro
Newsgroup: it.comp.lang.c
Titolo: Convertire Numeri in Stringhe

Ciao! Ho questo problema:
Ho un valore numerico Es. 1.524,54
Devo convertirlo in una stringa con formato 11 interi + 3 decimali,
riempiendo di zero (0) lo spazio vuoto a sx e senza delimitazioni
Esempi: "00000001524540"
Come posso fare?
Grazie!
--
****************************
    Matteo Schianchi
     Real-Time S.n.c.
matteo.s...@rtol.it
****************************

Esempi: "00000001524540"
sprintf( tua_stringa, "%014f", numero * 1000 ) ;
--
Andrea Laforgia (
andrea_...@bigfoot.com
)
---------------------------------------------

 --
In questo modo mi restituisce "1524540.000000"

 Esempi: "00000001524540"
      sprintf(stringa, "%014.f", numero*1000);
Ciao ciao,
Andrea
-- 
"...Unix, MS-DOS, and Windows NT (also known as the Good, the Bad, and 
 the Ugly)."
(by Matt Welsh)

you wrote:

Hai ragione ! ;)
manca la notazione per l'annullamento dei decimali.
sprintf( tua_stringa, "%014.0f", numero * 1000 ) ;
--
Andrea Laforgia (
andrea_...@bigfoot.com
)
---------------------------------------------
Newsgroup: it.comp.lang.c
Titolo: istruzione #pragma

ciao, qualcuno sa cosa significa questa istruzione #pragma...
e come bisogna usarla?
ho aggiunto alla cartella include di Lcc-win l'header file <i86.h> che era nel
compilatore della watcom. ho fatto una cazzata?
serve a qualcosa?
adesso mi riconosce le strutture dati ma non trova il prototipo di una funzione
dicendomi però che l'errore è in   #pragma pack(__push,1);
qualcuno sa darmi una spiegazione?
grazie
ciaooo
-- 
Posted from 
adsl-99-111.36-151.net24.it
 [151.36.111.99] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 qualcuno sa darmi una spiegazione?
   Semplicemente, il preprocessore dell'LCC non sa interpretare una 
direttiva di questo tipo, che per il Watcom C aveva invece un senso (per 
l'allineamento dei dati?).
   In questi casi, l'unica possibilita` e` consultare la manualistica 
dei compilatori.
-- 
Veri pirati noi siamo       Ma cosa c'e` di male?
Contro il sistema lottiamo  Ma cosa c'e` di strano?
Ci esecritiamo a scuola     Facciamo un gran casino
A far la faccia dura        Ma in fondo lavoriamo
Per fare piu` paura         Per capitan Uncino

 e come bisogna usarla?
#pragma e' una direttiva generica, il cui significato
reale e' implementation-dependent.
-- 
Posted from  [80.105.34.80] 


 Per fare piu` paura         Per capitan Uncino
io sono il professore...
della rivoluzione
bene, (canzone bellissima)
non è che sai anche quali sono i file da includere che hanno le stesse funzioni
del file 186.h? istruzioni per toccare i registri della scheda grafica ?
grazie ciaoo


 del file 186.h? istruzioni per toccare i registri della scheda grafica ?
   Non sperare di accedere ai registri della scheda grafica (ed in 
genere all'hardware di qualsiasi tipo) in ambiente Windows. Se vuoi un 
accesso rapido alla grafica, rivolgiti alle DirectX.
-- 
Veri pirati noi siamo       Ma cosa c'e` di male?
Contro il sistema lottiamo  Ma cosa c'e` di strano?
Ci esercitiamo a scuola     Facciamo un gran casino


 e come bisogna usarla?
prova a leggere il manuale del compilatore, lģ c'č sicuramente quello che cerchi e poi su
www.google.com

e infatti mi interessava riuscire a scrivere gli esempi di un libro che 
cmq sono scritti per dos. mi sarebbe piaciuto partire dal livello più basso
possibile.
grazie cmq.

Newsgroup: it.comp.lang.c
Titolo: Vettore di puntatori a funzione: e' possibile ?

Ciao,
    volevo sapere se (ed eventualmente come) posso definire un vettore
di puntatori a funzione.
Riesco a definire un puntatore a funzione:
int (*ptr_funz)(int );
Ma non so come fare per definire un array di questi "oggetti".
Qualcuno puņ aiutarmi ?
--
 Stefano Malavasi
---------------------------------------------------------------------
s_malavasi_REMOVETHIS_@_REMOVETHIS_lycos.it
Remove the string _REMOVETHIS_ to reply by e-mail

typedef int (*ptr_funz)(int);
ptr_funz aFunc[4];
dichiari un array di 4 elementi ognuno dei quali è un puntatore a una
funzione che prende un param int e restituisce un int...
Ciao
--------------------------------
Inviato via 
http://usenet.libero.it

Oltre al suddetto, c'č un altro modo meno chiaro:
typedef int (*ptr_func[100])(int);
per cui:
ptr_func dati;
dichiara la variabile "dati" come un array di 100 elementi ognuno puntatore
a funzione!


Prova questo... :-)
Compilato su Linux 2.4.7, funzica...
Ciao! :-)
#include <stdio.h>
#include <stdlib.h>
/* Prototipi Funzioni */
void Pippo(void);
void Ciao(void);
void TAPPO(void);
void Next(void);
/* Definizione di tipo "puntatore a funzione void" */
typedef void Function ();
/* Lista funzioni da eseguire */
Function *Lista[] = {   &Ciao,
                        &Pippo,
                        &Ciao,
                        &Next
                    };
/* Lista2 funzioni da eseguire */
Function *Lista2[] = {  &Pippo,
                        &Ciao,
                        &TAPPO
                    };
/* ******** cominciamo... ********** */
int main(void)
{
        int i = 0;
        /* Ciclo infinito; mi ferma TAPPO che fa una exit dal
         *  programma. Non sono riuscito a fermarlo con una
         *  variabile... :-(
         */
        while (1)
        {
                printf("Eseguo funzione %d:\t#", i);
                /* quì viene eseguita funzione i-esima */
                Lista[i]();
                printf("#\n", i);
                i++;
        };
        return 1;
}
void Pippo(void)
{
        printf("Pippoooo ");
}
void Ciao(void)
{
        printf("Ciao ");
}
void Next(void)
{
        printf("CAMBIO");
        *Lista = &Lista2;
}
/* questa serve come tappo (ferma l'intero programma!!!) */
void TAPPO(void){ exit (0); };

Newsgroup: it.comp.lang.c
Titolo: Dubbio: C o C++

Sono un neofita che vuole imapare a programmare e a quanti ho chiesto mi
hanno detto che il vero linguagi di programmazione per antonomasia è il C.
Ma a questo punto vi chiedo: è meglio imparare il C e poi migrare a C++
oppure partire direttamente dal C++.
A voi l'ardua sentenza.



Se il tuo fine è C++ parti da quello no ?		
Ciao,
	Nicholas
Newsgroup: it.comp.lang.c
Titolo: Perche' questo warning[lungo]?

Ciao a tutto il NG, sono uno studente di Ing. Chi.,e ho ripreso a
programmare in C (per hobby); e' da un po' che lurko ma e' la prima
volta che intervengo per chiedervi un aiutino: 
ho implementato una lista con delle strutture:
typedef struct{
       ....
      struct pippo *succ;
} pippo;
pippo *fdd;
ad un certo punto del programma faccio:
fdd=fdd->succ;
e il compilatore (VC5.0) mi spara:
warning C4133: '=' : incompatible types - from 'struct pippo *' to
'struct pippo *'
Il programma gira poi regolarmente, ma deve esserci un errore
concettuale che proprio non capisco(la guida in linea suggerisce di
fare un cast, mi chiedo quale dato che i tipi sono uguali).
Ne approfitto anche per fare un'altra domanda:
ho trovato in biblio il seguente utilissimo libro:
ANSI C - Guida di riferimento
Mark Williams Company (Jackson)
che dice di riferirsi alla seconda edizione di 'Linguaggio C' di K&R,
vorrei sapere se tratta l'ultima versione del linguaggio oppure sono
ancora stati rilasciati degli standard successivi.
Grazie per l'attenzione
Paolo
PS Buon 2001 a tutti 

 } pippo;
Il problema e' che i 2 tipi sono diversi;
fdd e' di tipo "unnamed struct { struct pippo*; },mentre fdd->succ e' di
tipo struct pippo*(che per altro non e' nemmeno stata dichiarata);
Un modo corretto per dichiarare la struttura e':
 typedef struct pippo_tag {
       ....
     struct pippo_tag *succ;
 } pippo;
--
Ivan Molella
__LINUX__ the choice of the __GNU__ generation
icq# 97960484

Newsgroup: it.comp.lang.c
Titolo: [Newbie] Compilare un file

Ho bisogno di un tool per convertire in windows i file di grafica in
DXF in un formato open source che si chiama fig. usato da Xfig
Questo tool esiste ma la versione binaria è per linux
http://ta.twi.tudelft.nl/ftp/dv/lemmens/dxf2fig-2.13.tar.gz
Come faccio a compilarla per Windows in modo da avere un exe?
ciao
grazie anticipate
Raffaele

> Come faccio a compilarla per Windows in modo da avere un exe?
Al limite va bene anche un consiglio per farlo sotto Linux
grazie ancora
ciao
Raffaele

[...]
... devi avere i file sorgenti del programma,
e con un compilatore che funzioni su windows, djgpp,mingw,
lanci il makefile se c'č , o compili a manina? :-)
Ciao

I sorgenti li ho. Nell'intestazione c'è questo
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
#include <string.h>
#include <unistd.h>
#include "hrgraph.h"
#include "dxfstuff.h"
il primo blocco è dato dai file standard di intestazione, e va bene.
L'ultimo file c'è nella tarball zippata, ma del penultimo non c'è
traccia. Sapete di che cosa si tratta?
ciao

[...]
#include "hrgraph.h"
#include "dxfstuff.h"
il primo blocco è dato dai file standard di intestazione, e va bene.
L'ultimo file c'è nella tarball zippata, ma del penultimo non c'è
traccia. Sapete di che cosa si tratta?
... o sono header specifici per linux o sono fuori standard
prova ad usarli anche con il gcc per windows.
uno a che fare con il formato dxf , autocad?
e l'altro e per la grafica, sembra, guarda su google,
ma perchè sempre e solo google? :-) ,anche su altavista.
Ciao
Newsgroup: it.comp.lang.c
Titolo: math.h

che vuol dire se, in compilazione, mi compare un errore del tipo
"sin not found"
in un semplicissimo programmino di matematica?
ed è per qualsiasi altra funz matmatica trascendente
uso gcc
che devo fare?

 "sin not found"
Se intendi qualcosa tipo "undefined reference to `sin'", allora
è perché non hai usato '-lm'.
Compila con 
$ gcc <opzioni> -lm
Ciao ciao,
Andrea
-- 
"...Unix, MS-DOS, and Windows NT (also known as the Good, the Bad, and 
 the Ugly)."
(by Matt Welsh)

Newsgroup: it.comp.lang.c
Titolo: Da numero a stringa

Scusate la mia profonda ignoranza, cone converto una variabile int in una
stringa?

 stringa?
Una risposta dettagliata la puoi trovare nelle FAQs (vedi firma). Se proprio
hai fretta, guardati la funzione sprintf().
ciao ciao
Marco
--
Marco Coppo
University Of Sheffield
FAQ di it.comp.lang.c:
http://www.programmazione.it/linguaggi/c/itcomplangc.htm

stringa?
suppongo che tu debba convertire dei numeri nel loro corrispondente
carattere. Sfruttando il fatto che nell'ASCII i numeri (come le
lettere) hanno codici sequenziali effettuo la conversione in questo
modo:
int a
char b
b = '0' + a
Aranar
e-mail: 
ro...@geocities.com
http://www.nettaxi.com/citizens/Aranar/
   (above all VgaPlanets)
http://www.tempolibero.com/user/aranar
    (sopratutto VgaPlanets)

b = '0' + a
Questo vale se a rappresenta CIFRE numeriche : non NUMERI.
Nel caso dei NUMERI da tradurre in stringhe bisogna usare sprintf().

puoi usare la funzione itoa ->Int To Ascii
non mi ricordo com'è di preciso.. guarda l'help per i parametri da
passare
ciao


 passare
MLO 26 $ man itoa
No manual entry for itoa
-- 
Maurizio Loreti                         
http://www.pd.infn.it/~loreti/mlo.html
Univ. of Padova, Dept. of Physics - Padova, Italy            
lor...@pd.infn.it

passare
Occhio che non e' standard.

 puoi usare la funzione itoa ->Int To Ascii
Non è standard.
EMG

Prova
...
    int  intToCnv = 100
    char intCnv[10] = '\0';
    sprintf(intCnv, "%c", intToCnv);
...
e' standard e converte numeri in stringhe.
La funzione sprint ha decine di formati di conversione,
quello illustrato e' il piu' banale.
Ciao Angelo

Newsgroup: it.comp.lang.c
Titolo: ordine byte tipo int nella ram

I tipi interi vengono tenuti memorizzati nella RAM partendo dal LSByte
finendo al MSByte, o viceversa ?
Per capirlo, ho creato questo semplice programmino (che vi invito ad
eseguire):
////////////////////////////////////////////////////////////////////////////
/////////
#include <stdio.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <stdint.h>
/*
questo programma serve per capire in quale ordine vengano tenuti in memoria
RAM i byte del tipo intero "int". Viene allocato per primo il LSByte o il
MSByte?
*/
main()
{
/*
i: il contatore del ciclo
a: la variabile del tipo "int"
pa: il puntatore ad "a"
vet: il vettore che legge un byte alla volta della variabile "a"
n_a: n° byte del tipo "int"
*/
int i;
int a=1; int *pa=&a;
signed char* vet;
int n_a=sizeof(int);
vet=(signed char*)pa;
printf("il tipo 'int' viene memorizzato in questo ordine nella RAM\n");
for(i=0; i<n_a; i=i++)
{
printf("%d\n", vet[i]);
}
getchar();
}
////////////////////////////////////////////////////////////////////////////
/////////
Ebbene, come potete vedere, non ci sono errori di compilazione, ma, in
esecuzione, esegue un
ciclo infinito di stampate del valore "1".
Il ciclo ha il contatore "i" che incrementa ad ogni passo, inoltre "n_a" nel
mio caso vale 4, e
pertanto dovrebbero essere eseguiti 4 cicli, e non infiniti!
ora io chiedo: che c'è di sbagliato nel codice?
grazie,
adriano

> for(i=0; i<n_a; i=i++)
Non so cosa faccia "i=i++" (e' definito?). Metti "i++" e basta: questo 
incrementa i di 1 unita'.
Pleg


Nel caso specifico (in base a quello che dice l'OP) la i viene prima 
incrementata, e poi ci viene assegnato il valore che aveva prima di 
essere incrementata. Dunque i rimane sempre 0.
E.

 Non so cosa faccia "i=i++" (e' definito?). 
Si tratta di una FAQ (
http://www.andrea.sosio.it/faqclcit.html
 faq #3.3)
Secondo lo standard del C, il comportamento di i=i++ e' indefinito. Ogni 
compilatore e' libero di generare il codice che vuole in questa situazione.
ciao
Giacomo

 situazione.
Ah ecco mi pareva, grazie!
Pleg 

 LSByte finendo al MSByte, o viceversa ?
Questa è una peculiarità del processore.  Alcuni memorizzano il LSB 
all'indirizzo più basso altri memorizzano il LSB all'indirizzo più 
alto.   Vedi Little endian/Big endian 
http://it.wikipedia.org/wiki/Ordine_dei_byte
Ciao
Giovanni
-- 
   A computer is like an air conditioner,
   it stops working when you open Windows.
   Registered Linux user #337974  < 
http://giovanni.homelinux.net/
 >
Newsgroup: it.comp.lang.c
Titolo: Decompilatore

Dove posso trovare un decompilatore C e C++, sempre che sia possibile
decompilare un programma ?
Grazie a chiunque mi rispondera'.
Ciao
Paolo

 wrote in message 38428743...@yacc.it...


 da il sorgente C... ho paura che tu debba rassegnarti! Non
Non è che sia impossibile tirare fuori un sorgente in C, il problema è che
assomiglierebbe molto poco al sorgente di origine, per cui tanto vale usare
l'assembler.
I problemi sono:
- tutti i nomi (che nell'eseguibile non ci sono, per cui avresti nomi come
v1, v2, ... f1, f2,...)
- tutte le funzioni standard e non (indistinguibili nel codice eseguibili
dalle tue, per cui ti troveresti con il sorgente di una printf)
- tutte le ottimizzazioni (che "assorbono" variabili, riducono o svolgono i
cicli, ecc)
- eventuali "criptazioni" eseguite dall'autore proprio per rendere difficile
la decompilazione.
- varie ed eventuali (al momento non mi viene in mente altro)
--
Alessandro Monti

 Marco
SoftIce è un debugger non un disassemblatore. WDasm e IDA sono dei
disassemblatori.

 wrote in message
CmE04.166$Ip3....@typhoon.libero.it...


 wrote in message
news:38428743...@yacc.it...


Newsgroup: it.comp.lang.c
Titolo: Generatore di pseudo-casuali

Qualche consiglio? Ne ho trovati alcuni in rete, altri usavamo time(0) per
impostare il seed della srand.
Secondo voi?
MI sembra una cosa non troppo complessa.
Grazie
P.S.: Scusate il martellamento, ma sono in tesi ed il tempo inizia a
scarseggiare, quindi approfitto della vostra esperienza e pazienza nella
speranza di perdere troppo tempo, spero mi capiate.
Grazie

 Secondo voi?
Secondo voi _cosa_ ?
http://kbs.cs.tu-berlin.de/~jutta/c/c-faq/c-12.html#12-8
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 Secondo voi _cosa_ ?
E' una buona soluzione quella indicata sopra?

 E' una buona soluzione quella indicata sopra?
Inizializzare il seme del generatore con time non e' ne buono ne' 
cattivo. Dipende da cosa devi fare con i numeri pseudocasuali.
I pro di inizializzare con time sono:
esecuzioni dell'  applicazione in tempi diversi (sufficientemente 
spaziati, in modo che time ritorno valori diversi, utilizzano semi 
diversi, rendendo impredicibile la sequenza generata;
I contro:
- se l'  applicazine e'  lanciata in rapida sequenza (al di sotto della 
granularita'  di time) da'  gli stessi numeri.
-in fase di test e/o debug sarebbe meglio poter avere il controllo 
completo su tutto, sequenza random inclusa.
-in alcune applicazioni puo'  esser utile avere un meccanismo che 
permetta di "spezzare"  in due o piu'  parti l'  esecuzione garantendo 
pero'  che il risultato di piu'  elaborazioni "in serie"  possa essere 
confrontato con quello di un' unica sequenza. Questo e' possibile se usi 
come seme per la seconda parte del run l' ultimo seme del run precedente.
Giorgio

 E' una buona soluzione quella indicata sopra?
E' solo l'impostazione del "seed", non è giudicabile la sua bontà o meno.
Quello che realmente conta è come vengono generati i numeri in sequenza
(vedi il link alle FAQ di comp.lang.c nel mio messaggio precedente).

Newsgroup: it.comp.lang.c
Titolo: Compilatore per C

Ragazzi mercoledě devo dare l'esame di programmazione in C ma quello s****o
del prof non ci ha fatto fare nemmeno un programma al pc,solo alla
lavagna.Io ho scaricato LCC solo che non ci capisco niente,non riesco ad
usarlo...Me ne consigliate uno,magari free?Altrimenti mi accontento di uno
non free,poi me lo procuro io..
Grazie!
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 Grazie!
http://www.mingw.org/
http://www.bloodshed.net/dev/devcpp.html
http://digitalmars.com/
http://www.openwatcom.org/
http://www.cs.virginia.edu/~lcc-win32/
http://www.smorgasbordet.com/pellesc/
http://www.borland.com/products/downloads/download_cbuilder.html#
ma dubito che riuscirai a usarli...


perchč scusa?
e poi forse per lui č meglio un ambiente integrato:
http://www.bloodshed.net/devcpp.html
-- 
"Non ci sono uomini come me.
Ci sono io e basta."
robiweb90 at gmail dot com

 
http://www.bloodshed.net/devcpp.html
se noti c'è nell'elenco...

 se noti c'č nell'elenco...
ah ecco...


 gcc programma.c !
dillo a me, il mouse mi serve solo per switchare da una finestra di 
termianle all'ìaltra :)

> ma dubito che riuscirai a usarli...
e grazie..cosa me ne faccio allora?
Io la sintassi del C la conosco abbastanza (o comunque il necessario per 
scrivere prog. stupidi!),mi serve un programma dove io scrivo il 
codice,clicco su compila,lo compila,e poi lo eseguo!!
Vi prego mi serve davvero,al massimo ditemi il più semplice che esiste e 
ditemi come fare...
-- 
So nevermind the darkness, we still can find a way
'Cause nothing last forever,
Even cold November Rain

 ditemi come fare...
vabbe' diciamo che ti serve un ide... prova quello suggerito da micetto 
nero.

 termianle all'ěaltra :)
Alt+Tab? :)
-- 
Quando noi ignoranti eravamo di piů, tutto era piů bello (A. Celentano).
  ___   _   ___ _  _______   _______ ___
|   \ /_\ | _ \ |/ / _ ) \ / /_   _| __|
| |) / _ \|   / ' <| _ \\ V /  | | | _|
|___/_/ \_\_|_\_|\_\___/ |_|   |_| |___|
X-Privat Sondaggio "Libera Usenet" - 
http://www.newsserver.it/freeusenet.php

 nero.
Boh...a me basta che io possa scrivere il mio miniprogrammino ed 
eseguirlo..proverň quello,se ho dubbi torno perň!



Cosa era? f9 per compilare con lcc.
Nel tutorial ci sono poi anche dei programmini gia' fatti; se apri il
tutorial di wedit ti cala il tutto col ccuchiaino.
Io uso il mingw32 a linea di comando ovvero con dei batch che cosi' faccio
pure il debug ma, quale che sia, il compilatore bisogna un tantino
conoscerlo.
Il vantaggio degli ide e' che di solito basta fare F1 per avere delle
dritte.
                        Donato

Scusate un'altra domanda...
Io ho scaricato Dev-C++,che è un compilatore anche di C.Apro un 
esempio,clicco su compila e non va!!Come mai?


 esempio,clicco su compila e non va!!Come mai?
sei sicuro di aver scaricato la versione contenente anche il 
compilatore? č quella che trovi qui:
http://www.bloodshed.net/dev/devcpp.html
Dev-C++ 5.0 beta 9 (4.9.9.0) (7.6 MB) with Mingw/GCC 3.3.1
cmq, ti converrebbe imparare ad usare un compilatore indipendentemente 
dall'ide.
ciao.
Newsgroup: it.comp.lang.c
Titolo: Foresta Union-Find

Salve a tutti.
Io devo implementare una struttura dati per insiemi disgiunti e, tra la 
teoria che ho già studiato e le implementazioni che sto leggendo in 
rete, mi sto orientando verso questo codice: 
http://en.literateprograms.org/Disjoint_set_data_structure_(C)
Il mio problema vi potrà sembrare banale, sinceramente sembra banale 
anche a me (ho la sensazione di perdermi in un bicchier d'acqua), però 
non so come risolverlo in maniera ottimale.
In particolare, il mio problema è che ho una struttura chaiamata Agente; 
possono esserci più agenti ed io ho bisogno che, per ognuno di essi, vi 
sia una "foresta di insiemi disgiunti".
....
Non riesco a pensare a come fare in modo che ogni agente abbia la sua 
foresta....
Ho pensato di fare una struttura che contenga una lista (o un array 
allocato dinamicamente) di puntatori ai vari rappresentanti degli alberi 
disgiunti....ma non è una soluzione un po'"rozza" (ammesso e non 
concesso che sia corretta)??
Spero di essere riuscito a spiegare il mio problema e ancor più che 
quacuno possa aiutarmi...
Come vedete sono confuso....non so neppure se a torto o a ragione...
Grazie mille a tutti

Come dicevo, ero terribilmente confuso, forse per la stanchezza....
Comunque ho risolto, semplicemente creando un Albero RB per ogni entità 
e poi ordinando QUEI nodi secondo relazioni UnionFind.
Grazie comunque e alla prossima :)
Newsgroup: it.comp.lang.c
Titolo: Interfacciare assembler e c

Salve
ho il seguente problema:
void PutPixel (int x,int y,int color)
{
 asm
 {
  mov edi, 0x0a0000            /* ecx = x , ebx = y , al = color */
  mov edx, ebx
  shl ebx, 8
  shl edx, 6
  add edi, ebx
  add edi, edx
  add edi, ecx
  stosb
 }
}
Nel codice precedente come faccio ad assegngare i registri ai parametri
della procedura scritta in c (come riportato in commento)?
Uso borland  c++ 5
Grazie
Mirko

you wrote :
#Nel codice precedente come faccio ad assegngare i registri ai parametri
#della procedura scritta in c (come riportato in commento)?
#
#Uso borland  c++ 5
Penso che vada bene 
      mov ecx, x
      mov ebx, y
      mov al, color
Anche se con al non puoi usare un int come valore da assegnare, ma un
byte a 8 bit.
Andrea Laforgia        (
andrea_...@bigfoot.com
)
----------------------------------------------------
There is nothing better for understanding a kangaroo
than seeing it jump.
----------------------------------------------------
Newsgroup: it.comp.lang.c
Titolo: Da longip a ip

Salve a tutti,
Avrei bisogno di un aiuto. Avrei bisogno di convertire l'indirizzo ip
spedito da una macchina in formato a 32bit in un indirizzo ip leggibile
del tipo xx.xx.x ecc. Qualcuno ha idea di come fare?
Grazie per l'aiuto.
-- 
+------------------------------------+
  Daniele M.                       
  Lightwork Technologies, Inc.      
 
lwdev...@tiscalinet.it
 

 del tipo xx.xx.x ecc. Qualcuno ha idea di come fare?
char *inet_ntoa(struct in_addr in);
conforme a BSD4.3
ciao
Kronos
-- 
Home: 
http://kronoz.tsx.org
La differenza fra l'intelligenza e la stupidita'?
All'intelligenza c'e' un limite.

 - rimuovi XXX  x  rispondere  ICQ	#8814554
 
La  rovina  del  mondo	sara'  l'indifferenza.	 Ma  chi  se  ne  fotte!
		-- Vincenzo Onorati
Newsgroup: it.comp.lang.c
Titolo: Ancora su matrici

Salve a tutti , stavo leggendo 
un post più indietro sulle matrici.
Per passare una matrice ad una funzione
void matrix(pippo[10][10]); si fà così ...
oppure matrix(pippo[][10]);
se nella funzione devo fare:
for(righe=0;righe<?;...)
for(colonne=0;colonne<?;...;)
matrix[righe][colonne]=100;
come posso sapere quante righe 
colonne ha la matrice passata?
Devo passarle tramite la funzione:
void matrix (int a[][], righe,colonne);
o c'è un altro modo?
In java c'è la possibilità di usare :
righe<matrix.length , in C?
Grazie a tutti
Ciao

righe<matrix.length , in C?
no.
-- 
Ciao, Giuseppe
Newsgroup: it.comp.lang.c
Titolo: [CrossPost] server java client c

Ciao,
dovrei far comunicare un server java con un client C tramite socket.
Avete qualche guida con esempi da indicarmi per vedere da che parte 
iniziare?
Grazie
Cendo 

Io non me ne intendo molto, ma penso che le interfacce dei vari
linguaggi di programmazione ai socket alla fine si equivalgano. Data
una certa interfaccia in comune (i socket), il protocollo di
comunicazione dovrebbe rimanere lo stesso.
Vi prego, corregetemi se sbaglio


Beh diciamo che i sistemi operativi tendono, windows compreso ad 
implementare per i socket l'interfaccia posix ... in windows devi 
aggiungere wsa_startup e wsa_cleanup per inizializzare la wsock mi sembra

Newsgroup: it.comp.lang.c
Titolo: Aiuto: Errore di Segmentazione

Ciao a tutti, ho urgente bisogno di aiuto, devo scrivere questa
funzione che riceve in input una stringa di interi da 1 a 26 compresi
che termina con un asterisco e che trasformi tutti gli 1 in a, tutti i
2 in b e cosě via. Ho provato cosě:
char* intToChar(int *vett)
{
   char *testo;
   int i = 1;
   int j = 0;
   assert(verMessInt(vett));
 
   testo = malloc(sizeof(char));
 
   while(*(vett + i) != '*') {
      if(*(vett + i) == 0)
         *(testo + j) = ' ';
      else
         *(testo + j) = *(vett + i) + 96;
      i++;
      j++;
   }
 
   *(testo + j) = '\0';
   return testo;
}
ma il debugger mi da violazione di accesso(errore di segmentazione)
mentre la funzione inversa, scritta praticamente nello stesso modo
funziona, perchč? Spero mi darete una mano a capire dove sbaglio,
grazie, ciao.

 2 in b e cosě via. Ho provato cosě:
Il tuo sorgente mi sembra "confuso". Stringa di interi ? Vorrai forse 
dire un array di interi ? E poi comunque confronti un intero con '*' ???
In ogni caso l'errore di segmentation e' dovuto al fatto che alla malloc 
chiedi di allocare spazio per 1 (uno) solo carattere e ovviamente ci vai 
poi fuori !

Newsgroup: it.comp.lang.c
Titolo: LCC, GCC , JPCC... qual'e' il migliore?

Sto cercando un compilatore free Win32 completo di editor, editor di
risorse, debugger...
Utilizzo da qualche mese LCC-Win32 v2.4, non e' male ma a quanto
pare non supporta l'in-line assebly :( (e forse neanche il modificare di
tipo 'far') :((
Visto che ho la necessita' di scrivere qualche funzione in assembler vorrei
sapere quale posso utilizzare in alternativa.
inoltre qual'e' secondo voi il compilatore free migliore, il piu' completo e
funzionale?
Ciao e grazie a tutti.

...

Newsgroup: it.comp.lang.c
Titolo: Algoritmo per disegnare il fuoco...

So che i programmatori di demo sicuramente hanno sotto mano uno di quei
bellissimi algoritmi che disegnano il fuoco a schermo. Mi piacerebbe
trovarne una versione C (sempre che esiste). Sapete poi indicarmi un sito
che contenga questi algoritmini carini?
Ciao e grazie!



La rivista Dev ha pubblicato una serie di articoli dove erano presentati
algoritmi tipici dei giochi, compreso l'effetto fuoco. Se guardi nel
loro sito 
www.infomedia.it
 dovresti trovarli.
Ciao,
- Salsi

 che contenga questi algoritmini carini?
www.cdrom.com
Questo e' il sito Walnut
da qui vai nell'archivio e cerca la sezione sulle DEMO.
Troverai un po' di tutto. C'e' troppa roba quindi ti tocca un po' cercare
pero' ne vale la pena.
ciao
Newsgroup: it.comp.lang.c
Titolo: scrittura in testa al file

Ciao a tutti,
ho questo problema: devo scrivere un file testo formattato, con valori
interi  organizzato in righe (di un valore costante nel file) e numero
di righe variabile ma generalmente superiore alle 400000.
Una volta scritto il corpo del file, devo tornare in testa e scrivere
il numero di righe e di colonne su due rige separate.
Ho provato sia con fseek che con rewind ma i lproblema è che mi viene
cancellata la prima riga. Come posso fare per fare "scorrere" il
contenuto del file e potere scrivere il numero di righe e di colonne.

 contenuto del file e potere scrivere il numero di righe e di colonne.
Devi riscrivere l'intero file...
E.


Bene, ma quando lascio le prime tre righe libere [printf("\n\n\n")],
do il cilo for() per scrivere su file e poi ritorno su con rewind, e
scrivo con il secondo printf() mi si sovrascivono comunque le prime
righe. Se non uso il secondo printf le righe vuoti mi si mantengono.
Non so come uscirne.
Grazie

gianluca ha scritto:

Non basta mettere gli "a capo". Devi lasciare abbastanza spazio per i 
dati che vuoi inserire successivamente. Supponendo che ti bastino sei cifre:
printf("000000\n000000\n000000\n");
Poi torni indietro con fseek e ci riscrivi sopra. Devi decidere se 
mettere degli spazi prima o dopo il numero (o se lasciare gli zeri 
all'inizio).
Attenzione ad aprire il file come "binary" (fopen("xxx","wb")) 
altrimenti cosa viene scritto al posto di '\n' varia in base al sistema 
operativo.
Se vuoi creare un file per Windows devi scrivere esplicitamente CR+LF.
printf("000000\r\n000000\r\n000000\r\n");
R.D.
Newsgroup: it.comp.lang.c
Titolo: Esercizi del libro "C Corso completo di programmazione"

Gli esercizi del "C Corso completo di programmazione" Deitel&Deitel
lasciano un pochino a desiderare e sono noiosi.
E' importante farli tutti per bene alla fine dell'apprendimento?
Io per adesso faccio quelli dove c'è anche la risposta agli esercizi
di autovalutazione. Gli esercizi che vengono dopo sono troppo
ripetitivi!! Comunque sia mancano di soluzioni o sbaglio?
Grazie.

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

 ripetitivi!! Comunque sia mancano di soluzioni o sbaglio?
Le soluzioni puoi cercarle sul sito degli autori
Newsgroup: it.comp.lang.c
Titolo: Aiuto con le stringhe !!!!

Premettendo  che sono alle primissime armi con la programmazione vi espongo
il mio problema.
Devo creare un programmino che lette da terminale una o più stringhe
eventualmente contenenti spazi,  le inserisca in un vettore di stringhe e le
modifichi in questo modo:  sostituisca ad ogni spazio un carattere, ad
esempio "-",  mediante una opportuna procedura e stampi le stringhe
modificate.
Esempio (banalissimo ;-)))) )
.....stringa inserita:
.....Speriamo che domani non piova
....stringa stampata:
.....Speriamo-che-domani-non-piova
Ringrazio in anticipo chi potrà aiutarmi.
Michele

.....Speriamo-che-domani-non-piova
vado al volo :
#include <stdio.h>
char *substSpaces( char *s )
{
     for ( ; *s ; s++ )
     {
         if ( *s == ' ' ) 
         {
            *s = '-' ;
         }
     }
}
main()
{
    char s[100] ;
    while ( fgets( s, sizeof s, stdin ) )
    {
          puts( substSpaces( s ) ) ;          
    }
}

Grazie infinite !!!
Michele
Ippopapero Acquatico <NoM...@nOmAiL.com> wrote in message
38d4ccf9....@diesel.cu.mi.it...


Newsgroup: it.comp.lang.c
Titolo: Dichiarazione variabile globale

Ho un problemino "stupido" ma che nn riesco a risolvere:
devo dichiarare un array di interi come variabile globale per poterla
utilizzare tramite thread.
Il problema sta nella dimensione dell' array, variabile che viene letta
durante l'esecuzione del programma nella funzione main.
come faccio a farla funzionare???
logicamente se scrivo così da errore:
int array[dim];
int main   {
...
int dim = leggi_da_file( ... );
}
soluzioni?
grazie per la disponibilità

 durante l'esecuzione del programma nella funzione main.
allocazione dinamica ?
int *array;
...
...
array = malloc(sizeof(int)*dim);
...
ciao,
g.

vanvera ha scritto:

Potresti provare anche con
int* array = (int*)malloc(sizeof(int[DIMENSIONE]));

 int* array = (int*)malloc(sizeof(int[DIMENSIONE]));
Questo è C++, non C.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it


Grazie mille...
Newsgroup: it.comp.lang.c
Titolo: scambio file su Internet e linguaggio C...

Devo realizzare uno scambio di dati tra 2 computer.
Ho scritto i 2 programmini client e server in C ed ho ricavato i rispettivi
eseguibili.
Per ora uso 2 computer collegati in rete all'interno del laboratorio, ma in
futuro i 2 terminali dovrebbero dialogare attraverso Internet.
I dati scambiati sono sia messaggi che file.
Io ho pensato di utilizzare le socket, il protocollo TCP ed i comandi recv e
send.
Lo scambio di messaggi funziona bene, ma lo scambio di file mi da dei
problemi.
La mia domanda e' questa: secondo voi, dati gli obiettivi citati all'inizio,
il metodo che ho utilizzato( socket, TCP, recv, send.) e' giusto oppure ci
sono tecniche migliori?
Allego sotto le 2 parti di programma che riguardano la trasmissione e la
ricezione del file:
E' il client che deve inviare un file al server
/* ciclo di trasmissione situato sul client) */
fdin=_open(fil,_O_RDONLY);
for(;;)
   {
   n=_read(fdin,buf,BUFSIZE);
   if(n==0) { printf("Trasmissione terminata!");break;}
   retval=send(conn_socket,buf,sizeof (buf),0 );
   }
close(fdin);
/*ciclo di ricezione situato sul server */
fdout=_open(fil,_O_WRONLY | _O_CREAT, _S_IREAD | _S_IWRITE );
for(;;)
   {
   n= recv(msgsock,buf,sizeof (buf),0 );
   if(n==0) { printf("Ricezione terminata!",tot); break;}
   write(fdout,buf,n);
   }
   close(fdout);


Talking about music is like dancing about architecture.
                -- Laurie Anderson
Newsgroup: it.comp.lang.c
Titolo: while(!feof(file))

C'č qualcuno che mi puo' aiutare?
In questa semplice funzione la condizione !feof(file)
viene valutata una volta di troppo..
Allora addirittura ho provato per curiosita'
a posizionare con fseek il segnaposto alla fine del file
ma while (!feof(file)) viene valutata ancora vera!
int vis(struct rec *punt)
{
   FILE *file;
      if ((file = fopen("c:\\windows\\desktop\\lib.dbs","rb"))== NULL)
        return 1;
   printf("\nIl segnaposto vale..%ld",ftell(file));
   while (!feof(file))
  {
   if (fread(punt,1,40,file)!=40)
        return 1;
     printf("\n%s%s",punt->a,punt->b);  /*char a[20] char b[20] */
     fseek(file,0,SET_END);
   }
   fclose(file);
return 0;
}

ma while (!feof(file)) viene valutata ancora vera!
...
La funzione feof torna vero se durante l'ultima operazione
di lettura e' stata incontrata la fine del file.
Non indica se ci si trova alla fine del file come invece
mi sembra di capire intendi tu.
Valutare feof senza aver fatto letture non e' sensato.
HTH
Andrea
--
Andrea Griffini, Programmer
http://www.netservers.com/~agriff

 viene valutata una volta di troppo..
E' una vecchia storia... ;)
[root@fokhouse /root]# grep -A13 ^12.2:  /usr/doc/FAQ/txt/C.FAQ
12.2:   Why does the code
                while(!feof(infp)) {
                        fgets(buf, MAXLINE, infp);
                        fputs(buf, outfp);
                }
        copy the last line twice?
A:      In C, EOF is only indicated *after* an input routine has tried
        to read, and has reached end-of-file.  (In other words, C's I/O
        is not like Pascal's.)  Usually, you should just check the
        return value of the input routine (fgets() in this case); often,
        you don't need to use feof() at all.
[root@fokhouse /root]#
Ciao ciao,
Andrea
-- 
"...Unix, MS-DOS, and Windows NT (also known as the Good, the Bad, and 
 the Ugly)."
(by Matt Welsh)

 }
Il test viene effettuato dopo una lettura.
Prova con:
while (fread(punt,40,1,file)) {
printf("\n%s%s",punt->a,punt->b);  /*char a[20] char b[20] */
}
Ho invertito 40 ed 1 perchč il prototipo di fread() č:
int fread(void * ptr, size_t size, size_t nitems,FILE * stram);
HTH
Newsgroup: it.comp.lang.c
Titolo: aiuto per keybd_event

Sto cercando un modo per attivare il num lock via software, penso che la
funzione keybd_event faccia al caso mio,ma non riesco a farla
funzionare.
Credo che il problema sia nel secondo parametro (hardware code, mi
sembra) o nelle flags che non so come definere.
Uso il Visual C++ 5.0 della Microsoft ed ho W98.
the CAS

...

Ciao,
la keybd_event(), per questo specifico gruppo di tasti, non funziona in
win9x, solo su NT (la ver. 4, non so sulle precedenti).
Ti posto un estratto che puo' funzionare su win9x e NT.
ciao
Nazzareno
P.S. Questo tipo di richiesta dovrebbe essere postata su
it.comp.programmare.win32
// -----------------------------------------------------
bool setNumLock(bool set)
{
  OSVERSIONINFO ver;
  ZeroMemory(&ver, sizeof(ver));
  ver.dwOSVersionInfoSize = sizeof(ver);
  if(!GetVersionEx(&ver)) {
    .. gestisci l'errore..
    return false;
    }
    // verifica solo se si e' su NT, 
    // non controlla numero di versione o altro
  if(VER_PLATFORM_WIN32_NT == ver.dwPlatformId) {
    // assume che il valore true per il tipo bool valga uno
    set ^= GetKeyState(VK_NUMLOCK) & 1;
    if(set) {
        BYTE scan = static_cast<BYTE>(MapVirtualKey(VK_NUMLOCK, 0));
        keybd_event(static_cast<BYTE>(VK_NUMLOCK), scan, 0, 0);
        keybd_event(static_cast<BYTE>(VK_NUMLOCK), scan, KEYEVENTF_KEYUP,
0);
        }
    }
  else {
    BYTE pbKeyState[256];
    GetKeyboardState(reinterpret_cast<LPBYTE>(&pbKeyState));
    if(set)
        pbKeyState[VK_NUMLOCK] |= 1;
    else
        pbKeyState[VK_NUMLOCK] &= ~1;
    SetKeyboardState(reinterpret_cast<LPBYTE>(&pbKeyState));
    }
  return true;
}
// -----------------------------------------------------



Grazie per l'aiuto.
the CAS



 Ti posto un estratto che puo' funzionare su win9x e NT.
Non conosci per caso come poter fare la stessa cosa in linux?
Di default all'avvio mi parte il SO con il num lock spento.
Ciao.

Lorenzo O. ha scritto nel messaggio <37751A29...@SoftHome.net>...

Spiacente, non conosco Linux ;-)
Avevo iniziato ad installarlo su una macchina, poi non ho piu' avuto tempo
da dedicargli :-(
Ciao
Nazzareno

Newsgroup: it.comp.lang.c
Titolo: Commento con Codeblocks  (C)

Il commento anteceduto dal simbolo // mi genera errore (linguaggio C.
Comme faccio per scrivere codice con lo standar C99?
 
Ciao
 
nero23

 Comme faccio per scrivere codice con lo standar C99?
 
Seconda domanda
 
 
Risposta ad entrambe:  Quale compilatore usi? 
 
 

compilatore -> MinGW
 
Ho risolto. E' una impostazione di Codeblocks...
 
Grazie
 
nero23
Newsgroup: it.comp.lang.c
Titolo: Cercasi programma per convertire un sorgente da PASCAL a C

Stò cercando un programma per convertire da PASCAL a C anche commerciale
preferibilmente con il sorgente. Qualcuno mi sa dire dove trovarlo ??

 Stņ cercando un programma per convertire da PASCAL a C anche commerciale


 preferibilmente con il sorgente. Qualcuno mi sa dire dove trovarlo ??
Per unix c'e' il p2c della GNU, completo di sorgenti. Forse si compila anche
sotto dos, non ho mai provato.
-- 
Matteo Gottardi / 
gma...@usa.net
*Linux*, The choice of a _GNU_ generation
Newsgroup: it.comp.lang.c
Titolo: Domanda semplice semplice

In una applicazione c sotto win, come posso effettuare il "cls"?
Grazie
Claudio

 In una applicazione c sotto win, come posso effettuare il "cls"?
Se per "applicazione c sotto win" intendi un programma in modalita` 
console ("Prompt di MS DOS") allora e` sufficiente la seguente riga di 
codice:
	system("cls");
Per un maggior controllo del terminale della console e per una maggiore 
portabilita` del programma, tuttavia, ti consiglio di prendere in 
considerazione qualche libreria apposita, come le ncurses.
Se, invece, l'ipotesi di cui sopra non e` valida, ti conviene riproporre 
la domanda in un gruppo di discussione specifico per la piattaforma in 
causa.
-- 
Baci,
Mony

Bhč la mia app dovrebbe girare in una shell dos sotto win.
Grazie cmq
Claudio
Newsgroup: it.comp.lang.c
Titolo: matrice e numeri negativi

ciao a tutti, questo programma legge da un file coppie di punti (x,y)
e stampa su un altro file una matrice che ha come elemento [x][y] il
numero di volte che la coppia (x,y) è stata letta dal file. La domanda
è: perchè non funziona se (x,y) sono numeri negativi? come si modifica
per farglieli leggere?
grazie a tutti.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void stampamatrice(int col, int righe, int pa[righe][col]);
int riempiMatrice(char *pFile, int col, int righe, int pa[righe]
[col]);
int main()
{
        char *pFile="coord.out";
        int col = 11, righe = 11;
        int aMatrix[righe][col];
        int nRetVal = EXIT_FAILURE;//progr termina con errori
        /* Inizializza a 0 la matrice.Versione veloce ma nn sempre
portabile..ad esempio con i double!*/
        memset(aMatrix, 0, sizeof(aMatrix));
        if(riempiMatrice(pFile,col, righe, aMatrix))
        {       stampamatrice(col, righe, aMatrix);
                nRetVal = EXIT_SUCCESS;//progr termina senza errori
        }
        else    fprintf(stderr, "Errore durante la lettura/apertura
del file dati: %s\n", pFile);
        return nRetVal;
}
int riempiMatrice(char *pFile, int col, int righe, int pa[righe][col])
{
        FILE *fp;
//ora dò il max num di caratteri(compreso eventuale \n)che ogni linea
del file può arrivare ad avere.preso 1024 abb.grande
        char bfLine[1024];
        if(!(fp = fopen(pFile, "rt")))
                return 0;
        int bFoundErr = 0;
//sscanf legge da stringa.sizeof=operatore unario a valore di tipo
costante intera senza segno ed = dimensione operando.
        while(fgets(bfLine, sizeof(bfLine), fp))
        {
                int x , y ;
                int n = sscanf(bfLine, "%d %d", &y, &x);
                if(n < 0) /* (dovrebbe essere una linea vuota: la
salta) */
                        continue;
                if(n != 2 || x < 0 || x >= col || y < 0 || y >= righe)
                {       bFoundErr = 1;
                        break;
                }
                pa[y][x]++;
        }
        if(ferror(fp))
                bFoundErr = 1;
        fclose(fp);
        return !bFoundErr;
}
void stampamatrice(int col, int righe, int pa[righe][col])
{
           FILE *fa;
           fa=fopen("matr.out","w");
          if(fa==NULL){
           printf("errore apertura file", fa);
           exit(1);
           }
          int x,y;
        for(y = 0; y < righe; y++)
        {       for(x = 0; x < col; x++)
                        fprintf(fa,"%3d ", pa[y][x]);
                fprintf(fa,"\n");
        }
         fclose(fa);
}

 per farglieli leggere?
Non ho letto niente del SW che hai scritto.
Quale č l'elemento [-2][-3] di una matrice? A che riga e a che colonna della
matrice appartiene?
Prima rispondi a questa domanda, poi ne possiamo riparlare.
Newsgroup: it.comp.lang.c
Titolo: Profiling di codice C

Ho scritto un programmino Server e vorrei farlo girare un po' più
velocemente, esiste qualche strumento di profiling per codice C gratuito?
qualcosa anche di molto semplice (la mia è più una curiosità !) che giri
sotto Win
Grazie
Wezzy

Wezzy ha scritto:

http://msdn.microsoft.com/library/en-us/dnvc60/html/optcode.asp?frame=true#optcode_topic4
inserisci QueryPerformanceCounter tra le tue nozioni, e riprova
-- 
#include <stdio.h>/* (C) BW2K+2 This code is released under GPL 2+ */
int main(void){char c[]={98,108,97,107,119,111,108,102,64,116,105,
115,99,97,108,105,46,105,116,32,119,101,98,46,116,105,115,99,97,108,
105,46,105,116,47,98,108,97,107,119,111,108,102,0};printf("%s\n",c);}

Newsgroup: it.comp.lang.c
Titolo: Esperti fatevi sotto :-)

Salve a tutti.
La mia prof. di Fondamenti di Informatica (politecnico di Milano,
ingegneria) per
prepararci al compito d'esame ci ha assegnato questo esercizio:
Supponiate che sia assegnata una matrice N*N di caratteri alfanumerici.
Si scriva un programma che trovi una sottomatrice (si suppone che nella
matrice N*N assegnata ci sia tale sottomatrice).
Il programma deve anche indicare la posizione di tale sottomatrice indicando
l'elemento in alto a sinistra (il primo, insomma).
Grazie a chi vorrą aiutarmi (sono alle prime armi con il C).
P.S.:andrebbe bene anche uno speudocodice! :-)

Grazie a chi vorrà aiutarmi (sono alle prime armi con il C).


Non vorrei fare il solito guastafeste ma secondo me ti conviene
cercarlo di fare da solo,probabilmente lo studio del C e' una cosa
che ti porterai dietro per lungo tempo ed una delle cose veramente utili
che possono insegnarti al politecnico.Fai uno sforzo adesso
che dopo quando arrivi agli anni successivi ti servira' parecchio
e ne sentirai la mancanza.
Ciao.

E comunque se hai capito come funzionano
gli arrai non dovrebbe essere troppo
difficoltoso se ci pensi un attimo.
Ciao.

 P.S.:andrebbe bene anche uno speudocodice! :-)
Ok, te lo faccio con pseudocodice:
if (exist_sottomatrice(matriceNxN)){
  sottomatrice=get_sottomatrice(matriceNxN);
  printf("Trovata! Primo elemento: %c\r\n",
         get_primo_elemento(sottomatrice));
}else{
  printf("Ops.... you\'ve No Clue!!!\n\r");
}
Ciao, Andrea
-- 
------------------------------------
arimicci @@ aritaly. com  .~~~.  ))
                (\__/)  .'     )  ))
  Andrea        /o o  \/     .~
      Rimicci  {o_,    \    {
                 / ,  , )    \     .
 * Developer *   `~  '-' \    } ))
C C++ cgi miva  _(    (   )_.'
Java           '---..{____}
OS/2 Warp Server for Ebusiness admin
--------- OS/2 V5 "Phoenix" --------