mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c
Titolo: C, Joystick e GLUT (openGL)

Salve a tutti,
                            sto cercando di interfacciare un programma con
le OpenGl (GLUT) in C e un Joystick.
Usando le Glut sono riuscito a leggere l'input dello sterzo nella routine
nominata nella callback glutJoystickFunc che faccio stampare a video
(ottengo una cascata di valori per l'asse x,y,z che variano con lo
spostamento della 'manopola' del joystick).
Il fatto è che non riesco a recuperare tali informazioni al di fuori della
routine specifica della callback.
Ecco come faccio, senza risultato; il programma si pianta all'assegnazione
dei puntatori sulla routine 'taratura':
joystick.c
#include <stdio.h>
#include <gl/glut.h>
int *JoyX,*JoyY;
int i, j;
void taratura()
{
  printf("\n\t Valori:%i \t%i",*JoyX,*JoyY);  \\ qui si pianta! (Unhandled
exception... )
}
void display(void)
{
 glClear(GL_COLOR_BUFFER_BIT);
}
void joy(unsigned int buttonMask, int x, int y, int z)
{
 switch(buttonMask)
 {
      case (GLUT_JOYSTICK_BUTTON_A) :
     printf("\nbottone A\n");
  break;
   case (GLUT_JOYSTICK_BUTTON_B) :
        printf("\nbottone B\n");
  break;
   case (GLUT_JOYSTICK_BUTTON_C) :
  printf("\nbottone C\n");
 break;
   case (GLUT_JOYSTICK_BUTTON_D) :
  printf("\nbottone D\n");
 break;
 }
 JoyX = &x;    // Indirizzo i  puntatori che dovrebbero portarmi fuori il
segnale
 JoyY = &y;
 printf("X %i \tY %i\t*X %i \t*Y %i\n",i,j,*JoyX,*JoyY);  // qui è tutto ok,
infatti!
}
void main(int argc, char **argv)
{
 glutInit(&argc, argv);
 glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB );  // inizializza DISPLAYMODE
    glutInitWindowPosition (100, 100);        // posiziona la finestra
grafica
    glutInitWindowSize (10, 10);         // scelta dim finestra grafica
(pixel)
    glutCreateWindow ("Joystick");      // intestazione della finestra
grafica
glClear(GL_COLOR_BUFFER_BIT );
 glClearColor(0,0,0,0);
 glutJoystickFunc(joy,1);    // (funzione chiamata, poll rate)
 taratura();
 glutForceJoystickFunc();
 glutDisplayFunc(display);
 glutMainLoop();
}
Chi sa suggerirmi dove sbaglio?
Oppure è un problema delle Glut (che infatti sembrano non rilevare la
presenza del Joystick, pur rilevandone il segnale!?!)?
Grazie ancora a tutti!
Ciao e a presto!
M D

int *JoyX,*JoyY;
Non ti capisco: perche' usi i puntatori?
int JoyX, JoyY;
...
void taratura()
{
  printf("\n\t Valori:%i \t%i",JoyX,JoyY);
}
...
void joy(unsigned int buttonMask, int x, int y, int z)
{
...
 JoyX = x;
 JoyY = y;
 printf("X %i \tY %i\t*X %i \t*Y %i\n",i,j,JoyX,JoyY);
}
-- 
Saluti,
    Mardy
Newsgroup: it.comp.lang.c
Titolo: (&a = *px) perchè?

Salve a tutto il NG.
Come esempio in un tutorial (l'es. è su uno scambio di variabili) ho
trovato questo:
5 swap (&a,&b)
passo l'indirizzo in memoria delle variabili a e b.
poi trovo sotto la funzine...
8 void swap (int *px, int *py)
{
//..ecc per lo scambio variabili
}
il mio dubbio è: quando ho chiamato la funzione, ho passato degli
indirizzi in memoria di a e b; poi sotto (nella funzione swap) *px è
associato a &a, e *py è associato a b.
Ma *px non è il contenuto di a?
Se a=20 (non vuol dire &a=20)
allora *px=20 (con di solito px=&a se non si passasse da una funzione
all'altra main e swap),
dunque *px non vedo come possa essere associato a &a, come si fa nella
fuzione swap sopra.
Percepisco che forse è una banalità, ma da solo non riesco a capire.
Grazie a chiunque possa darmi una mano.

Per quanto riguarda i puntatori, come ben sai, ci sono due operatori: * e &.
La & indica "INDIRIZZO DI...", mentre il secondo ha due ruoli:
   1 - Se usi l'asterisco nel codice vero e proprio, significa 
"all'indirizzo di....";
   2 - Nelle dichiarazioni, indica semplicemente che quella variabile č 
un PUNTATORE A OGGETTI DI TIPO....
quindi la funzione swap che dicevi tu:
void swap(int *px, int *py)
{
   ....
}
significa che la funzione accetta in ingresso due parametri, che sono 
PUNTATORI a INT.
Cosě come fai:
#include ...
char *p, nome[20];
int *punt;
Anche in questo caso, p č dichiarato come puntatore a char e non 
significa "il contenuto di p". Idem con punt, che č una variabile 
puntatore a interi.
-- 
Quando noi ignoranti eravamo di piů, tutto era piů bello (A. Celentano).
  ___   _   ___ _  _______   _______ ___
|   \ /_\ | _ \ |/ / _ ) \ / /_   _| __|
| |) / _ \|   / ' <| _ \\ V /  | | | _|
|___/_/ \_\_|_\_|\_\___/ |_|   |_| |___|
GIGAMAIL by X-Privat: 
http://www.x-privat.org/gigamail.php
Newsgroup: it.comp.lang.c
Titolo: Rilevare il backspace da tastiera

C'è un esercizio del K&R che chiede di rilevare vari codici di escape, tra
cui \b.
Ora: come faccio a rilevarlo, se alla pressione di backspace questo non
viene restituito in stdin ma genera direttamente la cancellazione del
carattere precedente?
Non posso neanche provare con un backspace inserito in un file, redirigendo
lo standard input, sempre perché non riesco a farmi restituire il backspace.
Se l'unico modo è leggere il buffer di tastiera in assembly, perché il K&R
chiede proprio questo (mi sembra strano)?
Marco

, 
marc...@tin.it
 says...

mmmm...
se usi un compilatore per dos , o windoze, se' ce' prova con la 
funzione getch() ...non ti dico di piu' visto che' e' per te' l'esercizio 
:))
ciao

cui \b.
Giusto per capire, riporteresti il testo completo dell'esercizio ?
--
Andrea Laforgia
andrea_...@bigfoot.com

 lo standard input, sempre perché non riesco a farmi restituire il backspace.
[root@fokhouse /root]# echo -e "pippo\b\b\bolo" >file
[root@fokhouse /root]# cat file
piolo
[root@fokhouse /root]# hexdump -cx file
0000000   p   i   p   p   o  \b  \b  \b   o   l   o  \n
0000000    6970    7070    086f    0808    6c6f    0a6f
000000c
[root@fokhouse /root]#
Adesso hai un bel file che contiene degli '\b' ;)
Ciao ciao,
Andrea
-- 
"...Unix, MS-DOS, and Windows NT (also known as the Good, the Bad, and 
 the Ugly)."
(by Matt Welsh)

A parte il fatto che non posso usare getch() perchè non è standard.
Comunque il problema è che qualsiasi funzione uso non rileverà mai il
backspace, dato che viene intercettato dall'OS e trasformato in una
cancellazione del carattere precedente.
Marco

if(a==' ')
Newsgroup: it.comp.lang.c
Titolo: problemi con macro

ciao a tutti,
Allora il problema č:
#include <stdio.h>
#define QUADRATO(x) (x*x)
void main()
{
int a = 2;
int b = QUADRATO(a++);
printf("%d,%d",a,b);
}
b= 2*3= 6 OK
non capisco perchč a = 4
Grazie anticipatamente
enrico

non capisco perchč a = 4
La linea la macro viene espansa come 
int b = ( a++ * a++ );
Mai usare gli operatori di post/pre incremento con le macro.
-- 
Marco Barisione (ICQ 84277092)

 int b = ( a++ * a++ );
grazie 1000
Ora lo stesso codice sotto linux compilatore gcc(GNU)2.95.3
#include <stdio.h>
#define QUADRATO(x) (x*x)
void main()
{
int a = 2;
int b = QUADRATO(a++);
printf("%d,%d",a,b);
return 0
}
a= 4 ok
b=4 perchč?
Riciao e grazie
enrico


Io non capisco perche' b=6 !!!!
Allora:
a=2
b=QUADRATO(a++) cioe'
b=(a++ * a++) quindi secondo la precedenza degli operatori:
1) b=a*a
2) b=2*2
3) b=4
4)a++
5)a=3
6)a++
7)a=4
Quindi otteremo:
printf("%d, %d",a,b); ==> 4,4
Se in windows ottieni b=6 probabilmente hai qualche problema col 
compilatore windows!!!
Nella Re: tu stesso dichiari che in linux b=4 infatti questo e' il 
valore esatto
bye bye
Luciano

b=4 perchè?
Il codice produce un undefined behaviour, cioè il compilatore può fare
quello che vuole.
Un altro caso analogo è:
x = x++ % 2


 b= 4 perche`?
QUADRATO(a++);
diventa
(a++ * a++);
Che mi sembra undefined. Te lo direbbe anche il gcc, se usassi un 3.0.x.
Scrivendo il codice come:
...
int b;
b = QUADRATO(a++);
...
e compilando con il mio 3.0.3 con -Wall:
warning: operation on `a' may be undefined
Scrivendo  (a++  *   a++)  modifichi  due  volte   la  stessa  variabile
all'interno dello stesso sequence point,  e questo, a rigor di standard,
non  e`  permesso. L'output del  gcc  e`  corretto, come  sarebbe  stato
corretto "666,3.14".
Vediamo  se riesco  a  spiegarmi  meglio. L'operatore di  postincremento
prima resitituisce il  valore e poi incrementa. (a++ *  a++) si potrebbe
scrivere come:
tmp1 = a;
a++;
tmp2 = a;
a++;
ret = tmp1 * tmp2;	(ret = 6)
Il fatto  e` che l'ordine in  cui le operazioni vengono  eseguite non e`
fisso, potrebbe anche essere:
tmp1 = a;
tmp2 = a;
a++;
a++;
ret = tmp1 * tmp2;	(ret = 4)
Un piccolo consiglio: quando fai delle prove compila sempre con -Wall in
modo da vedere tutti i warning.
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
Software is like sex; it's better when it's free.
Linus Torvalds

 valore esatto
Benvenuto  nel fantastico  modo dell'undefined  behaviour :)  Entrambi i
risultati sono corretti, vedi il mio post.
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
"L'ottimista pensa che questo sia il migliore dei mondi possibili. 
 Il pessimista sa che e` vero" -- J. Robert Oppenheimer

 b=4 perchč?
Perchč cercare un perchč?  :-)
Il codice non č legale in quanto cerca di modificare la stessa variabile
all'interndo di due sequence point. Quindi: undefined behaviour.
Max
Newsgroup: it.comp.lang.c
Titolo: Dialer

Salve,
siamo un'azienda di Treviso che produce Addolcitori industriali.
Dobbiamo attivare sul ns. sito un'area riservata a pagamento da dove i ns.
utenti/clienti potranno scaricare dei files PDF che contengono informazioni
tecniche importanti sulle macchine da noi costruite.
Ci č stato consigliato dai diretti interessati di non attivare un pagamento con
carta di credito (per varie ragioni ormai arcinote e con le quali NON siamo del
tutto d'accordo).
Contattato un Centro Servizi Audiotel abbiamo cosě deciso di dare accesso alla
ns. area riservata attraverso un dialer che si collega ad un numero a valore
aggiunto (fascia piů bassa 444 L. min + Iva).
Abbiamo quindi bisogno di un programmino chiamato Dialer molto simile (Haimč) a
quelli che si trovano sui siti per adulti o per il download di suonerie e loghi
per cellulari.
Qualcuno puň aiutarci ed č in grado di realizzarlo?
Per contatti scrivere a Demetrio Marangoni - TecnoAdd S.r.l.
addol...@libero.it
Con i migliori saluti,
Demetrio Marangoni
-- 
Posted from 
ppp-62-10-53-213.dialup.tiscali.it
 [62.10.53.213] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Abbiamo quindi bisogno di un programmino chiamato Dialer molto simile (Haimè) a
   E` assolutamente off topic, e comunque no, non ne avete bisogno.
   I dialer, in fin dei conti, sono progettati per chiamare
all'insaputa dell'utente. Se il vostro utente e` consenziente, vi
basta uno script di configurazione del collegamento. Nel caso di
win9x, un addolcitori.ins di pochissime righe opportunamente scritto.
   Chissa` se siete in buona fede...
-- 
Totuccio.
Newsgroup: it.comp.lang.c
Titolo: UNIX: Socket & segnali

Ciao a tutti,
La mia è una req help di programmazione.
Sistemi UNIX (SUN Solaris e LINUX).
Io ho due bei processi che devono chiaccherare tra loro via soket TCP/IP,
ovviamente un processo Server ed un processo Client.
Il problema nasce dal fatt che le rimitive UNIX per la gestione delle soket
sono bloccanti, mentre io ho bisogno che non lo siano, infatti i miei
processi in esame già si _devono_ mettere in wait su un semaforo a causa di
un protocollo IPC (custom), e quindi o mi metto in wait sulla socket o mi
metto in wait sul semaforo.
Dato che la parte IPC (basata su semafori) non la si puo' toccare, e che il
waitIPC() si risveglia anche con l'arrivo di segnali, a me risolverebbe
tutti i problemi se le primitive socket mi inviassero segnali quando (A)
viene attivata una connessione (B) arrivano dati dalla connessione (C)....
Forse potrei ottenere la cosa creando un'altro therad che si gestisce le
socket e che invia signals al processi superiori, ma a casua della
architettura che sistema (applicativo) non posso (o meglio è un bel casino)
creare processi child; vorrei evitarlo come la peste.
Succo succo: è possibile farci avvisare (risvegliare) dal sistema con dei
segnali (signal) quando accadono eventi socket ?
Grazie a tutti
Salutoni
Ettore Maronese
il Mes
http://www.maronese.com/mes

 con dei segnali (signal) quando accadono eventi socket ?
  select()? Prova a chiedere su qualche gruppo relativo alla
programmazione sui sistemi Unix.
	Alla prossima,
		Marco


C'e' un bell'esempio sullo Stevens in proposito, devi intercettare
SIGIO. Se vuoi i dettagli scrivi su icol.development.
Sent via Deja.com
http://www.deja.com/
Newsgroup: it.comp.lang.c
Titolo: conversione

salve a tutti,
ho un problema del genere:
come faccio a convertire in ore minuti e secondi una cifra immessa che
rappresenta dei secondi.
es.
3700 sec. = 1 ora 1min. 40 sec.

 3700 sec. = 1 ora 1min. 40 sec.
Eccoti un esempietto:
#include <stdio.h>
int main()
{
    int ore, min, sec;
    sec = 3700;
    ore = sec / 3600;
    sec -= ore * 3600;
    min = sec / 60;
    sec -= min * 60;
    printf( "%d ore %d min %d sec\n", ore, min, sec );
    return 0;
}
EMG

 wrote in message
3A47CB35...@flashnet.it...

grazie tante e buone feste

Newsgroup: it.comp.lang.c
Titolo: Funzione per ripulire lo schermo

Ciao a tutti!
Qualcuno di voi sa dirmi quale funzione posso utilizzare per ripulire una
schermata in ambiente DOS?
Ho provato ad usare clrscr(), ma il compilare non vuole saperne, e mi da
errori su errori.
Sto usando Visual C++ 6.0 della Microsoft.
Grazie per l'aiuto.
Ciao ciao :)
estr...@libero.it
estr...@tiscalinet.it
http://web.tiscalinet.it/tempo_libero/index.html

 Sto usando Visual C++ 6.0 della Microsoft.
  Risposte piu` adeguate le troverai nei gruppi dedicati alla
programmazione per Windows: se hai altre domande del genere, e` bene che
tu inizi a pensare di postarle in questi gruppi.
	Alla prossima,
		Marco


Grazie mille!!! Ora lo provo subito :)
E scusa per il non voluto OT :)
Ciao ciao
Newsgroup: it.comp.lang.c
Titolo: Precedenza operatori ++ e *

Ciao a tutti,
Ho questo banalissimo programma che mi lascia qualche dubbio:
#include <stdio.h>
void conta_spazi(char *s, int *contatore);
main(){
	char *s;
	s = "hello world";
	int contatore = 0;
	conta_spazi(s, &contatore);
	printf("Numero di spazi %d\n", contatore);
}
void conta_spazi(char *s, int *contatore){
	while (*s != '\0'){
		if (*s == ' '){
			// *contatore++ si comporta in modo diverso
			//*contatore = *contatore + 1;
			(*contatore)++;
		}
		*s++;
	}
}
che funziona correttamente e mi restituisce il numero di spazi. Ho
però dovuto mettere le parentesi su (*contatore)++ e questo mi deduce
nel dire che il ++ ha la precedenza rispetto all'asterisco (anche se
dai ricordi che ho mi pare il contrario e questa è una cosa che non
capisco). Oltretutto se tolgo le parentesi mi restituisce zero.
Però in una funzione che lavora con un vettore di caratteri ho questo
codice:
void strcopy(char *s, char *t){
     while((*s++ = *t++) != '\0')
          ;
}
In questo caso se il ++ agisse prima dell'asterisco mi dovrei perdere
il primo carattere nella copia delle stringhe ma ciò non accade; la
funzione opera correttamente copiando l'intera stringa.
Capisco che nel primo caso lavorando con un semplice intero
l'aritmetica dei puntatori non avrebbe molto senso però *contatore++
dovrebbe comunque funzionare se l'asterisco ha priorità rispetto al +
+.
Non capisco perchè questa distinzione nei due casi; come mai nel primo
caso ho bisogno di esplicitare la priorità degli operatori mentre nel
secondo no ?
Grazie mille

 Grazie mille
ciao
i due casi che hai mostrato sono diversi e fanno due operazioni
diverse:
il primo caso e' ((*contatore)++) mentre il secondo e' (*(s++))
ossia: nel primo caso tu hai un puntatore e vuoi incrementare di 1 il
valore dell'oggetto a cui il puntatore punta. Nel secondo caso
vai a prelevare il valore puntato e poi vai a incrementare il
puntatore stesso (ossia lo "sposti avanti di una casella").
Per via della priorita' degli operatori, se vuoi fare la seconda
operazione le parentesi non occorrono mentre nel primo si.
ciao
Giacomo

Newsgroup: it.comp.lang.c
Titolo: riutilizzo di srtutture in c

Esiste un modo per implementare una sorta di ereditarietą in c?
Ad esesmpio io ho definito una struttura e alcune funzioni per la
realizzazione di alberi binari di ricerca.
typedef struct bst_node{
    int key;
    struct bst_node* p;
    srtuct bst_node* left;
    struct bst_node* right;
}bst_node;
typedef bst_node* BSTREE;
e poi le funzioni che accettano come parametri un tipo BSTREE
BSTREE bst_p(BSTREE t){return t->p;} ecc.
Poi se volessi implemtare un rb-albero dovrei aggiungere al bst_node solo un
campo colore.
 Devo per forza riscirevere intermente la struttura, e tuttle funzioni gią
definite per la struttura bst_node, oppure esiste un modo che mi agevoli la
cosa?

In linea di massima ti devi riscrivere la struttura o fare una nuova
struttura con 2 campi: quello nuovo e la struct bst_node!
Newsgroup: it.comp.lang.c
Titolo: aiutooooo

Aiutatemi mi serve il compilatore C
dove lo posso scaricare?
grazie!!
--
www.sitissimo.3000.it
   (il mio primo sito!)

 dove lo posso scaricare?
Se hai una qualunque versione di Linux il compilatore e' compreso
nella distribuzione, se invece intendi per Windows, o ti scarichi
il BCC dal sito borland, o usi il porting di GCC della GNU.
Davide

 ha scritto nel messaggio
news:987rqg$m90i$1...@ID-18487.news.dfncis.de...


Newsgroup: it.comp.lang.c
Titolo: animazioni con c?

a volte mi è capitato di usare i comandi più semplici di gradica in c
(sotto dos per intenderci, quindi l'esecuzione del programma viene
fatta a schermo intero). Ora avrei bisogno di effettuare una piccola
animazione: praticamente dovrei rappresentare una specie di sismografo:
al centro dello schermo un punto continua a muoversi in alto e in basso
a seconda del valore assunto da una variabile interna del programma.
Poi tale punto deve essere trascinato a sinistra ciclo dopo ciclo fino
a toccare l'estremo sinistro del monitor. In pratica dovrei rendere
l'effetto della carta che scorre sotto la matita del sismografo che
invece è fissa sull'asse orizzontale. La mia paura è che però sia
abbiano spiacevoli effetti dovuti alla lentezza di elaborazione, dato
che dovrei lavorare in risoluzione 640x480 o 1024x768. C'è un modo per
manipolare direttamente la memoria grafica in modo da agevolare le
operazioni?

 
Devi usare delle librerie grafiche.
Puoi usare le Allegro : 
http://www.talula.demon.co.uk/allegro/
o le SDL: 
http://www.libsdl.org
Entrambe sono disponibili sia per Windows che per Linux (o anche MacOSX).
In alcuni casi sono disponibili delle accelerazioni hardware per il
disegno di primitive semplici (quali punti o linee) quindi non credo
sia un'operazione particolarmente lenta, soprattutto con l'hardware odierno-

 



La mia versione del sismografo 'random'... e' solo per giocare un po'.
----------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
int main()
{
  char *line;
  int i=0;
  line = malloc(80*sizeof(char));
  memset(line, ' ', 80);
 
  while(1)
  {
    printf("\r%s\n", line);
    line[i] = ' ';
 
    i=1+(int) (79.0*rand()/(RAND_MAX+0.0));
    line[i] = '|';
 
    printf("%s", line);
    fflush(stdout);
    line[i] = '*';
    sleep(1);
  }
 
  return 0;
}
----------------------------------------------------
Bye,
   RN.
Newsgroup: it.comp.lang.c
Titolo: libro sulla programmazione in C

Ciao a tutti,
Ho deciso di acquistare un libro circa il linguaggio "C", che spieghi 
proprio tutto dalla "A" alla "Z". Ma deve essere allo stesso tempo,
semplice ed esplicativo, magari con esempi. Proprio per un niubbo come me.
Quale mi consigliate?
Grazie e buona programmazione a tutti.
;-)

 Quale mi consigliate?
Il libro introduttivo per eccellenza sul linguaggio C e` "The C 
Programming Language" di Brian W. Kernighan e Dennis M. Ritchie 
(tradotto in italiano come "Linguaggio C" se non erro). Ottimo se hai 
gia` programmato un pochino.
Se invece non hai mai programmato in vita tua, direi che forse e` meglio 
  "C - Corso completo di programmazione" di Deitel & Deitel.
Online puoi trovare questi due tutorial (gli unici introduttivi decenti 
che io conosca in rete):
 
http://www.eskimo.com/~scs/cclass/cclass.html
 
http://cprog.tomsweb.net/
Buona fortuna :-)



Come diceva Enrico, il Deitel&Deitel è ottimo per iniziare, il
Kernighan un po meno ed anche un po' piu' datato per lo standard :)

 Kernighan un po meno ed anche un po' piu' datato per lo standard :)
Vero, ma tanto non esistono compilatori diffusi conformi al "nuovo" 
(ormai fa 5 anni...) standard.


A tal proposito - come mai questa lentezza nell'avvento del C99?
-- 
Mat/tia Belletti - Undergraduate student @ 
cs.unibo.it
ICQ: 33292311    - email: 
mbel...@cs.unibo.it
IRC: RedGlow     - site(s): 
http://www.cs.unibo.it/~mbellett
Linux registered user 299762 @ Linux registered machine 213003

 A tal proposito - come mai questa lentezza nell'avvento del C99?
A quanto ho capito lurkando su comp.lang.c e comp.std.c pare che non ci 
sia molto interesse "commerciale" per le nuove caratteristiche del 
linguaggio, quindi nessuna pressione sui produttori, quindi poco 
desiderio di adeguarsi da parte di questi ultimi.
Per quanto riguarda gcc, pare che inserire le features mancanti sia 
impresa tutt'altro che banale e che i finanziatori siano interessati ad 
altro.
E` un peccato, perche` alcune caratteristiche sono interessanti 
(soprattutto secondo me gli array a dimensione variabile - che esistono 
in molti compilatori, sebbene in una forma diversa da quella richiesta 
dallo standard).
Non e` infine da sottovalutare l'eventuale adattamento di vecchio codice 
  che diventerebbe non piu` conforme. Sono poche le caratteristiche 
diventate fuori legge, ma non trascurabili: ad esempio la rimozione 
dell'int implicito e la necessita` di fornire *sempre* un prototipo 
prima di chiamare una funzione.

 altro.
tralaltro alcune di queste estensioni erano gia` presenti come
'estensioni' allo standard.
certo, non tutte, tanto e` vero che non e` un c99.
-- 
Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are,
by definition, not smart enough to debug it.
    - Brian W. Kernighan
Newsgroup: it.comp.lang.c
Titolo: invio di una stringa

ciao  a tutti
sniffando i dati del protocollo irc con wireshark noto che a un certo
punto per il resume di un trasferimento un noto programma manda questa
stringa:
PRIVMSG Ex|testtrasf|001 :\001DCC RESUME prova_trasferimento.pdf 58772
5016204\001
a questo punto il server risponde.
Utilizzando i socket io riesco a connettermi al server ed a inviargli
tuti i messaggi che voglio, ma quando mando il comando sopra scritto
il server non mi risponde.
 La mia domanda è \001 a cosa corrisponde?
penso che l'inghippo sia li, perche gli altri comandi che non hanno lo
\001 vengono digeriti bene?
Grazie Luca


in generale:
http://www.irchelp.org/irchelp/text/rfc1459.txt
Visto che non troverai i comandi per il dcc (se ricordo bene non sono su questo rfc) direi a occhio che quello \001 si riferisce al carattere il cui codice è uno ((char)1)
Ciao!


Ciao in effetti era char(001),
ora su un pc con win xp il char(001) mi viene riconosciuto e ottengo
ciò che voglio, su un altro pc sempre con windows xp non ho errori ma
il char(001) non mi viene riconosciuto e non ottengo ciò che mi serve,
hai mica qualche idea
Ciao
Luca

On Monday, April 11, 2011 5:13:01 PM UTC+2, luca72 wrote:

Non so cosa intendi con char(001), comunque:
char c;
c = 1;
e stai a posto :-)
Ciao!
Newsgroup: it.comp.lang.c
Titolo: problema alla prima compilazione del c

ciao, dopo essermi procuratot i tool per programmare in c, ho provato a 
compilare un semplice programmino, per vedere piu' che altro se' funziona il 
compilatore. io ho xp pro, come editor uso gvim 7.1, mi sono scaricato 
l'ambiente msys 1.10.11, e il mingw v. 5.1.0 ho aggiunto alla path della 
variabile d'ambiente la seguente stringa :
;c:\msys\1.0.11\bin;c:\mingw\bin (spero che sia quella giusta)
comunque digitando sul prompt dei comandi gcc mi da il messaggio
gcc: no imput files, quindi il mingw dovrebbe esere stato installato 
correttamente.
il programma che vorrei compilare e' il seguente:
1
3 #include <stdio.h>
4
5
6 int main()
7 {
8 printf(" welcome to c!\n");
9
10 return 0;
11
12 }
l'ho salvato con il nome di pippo.c
dal prompt dei comandi di windows ho digitato : gcc pippo.c -opippo.exe
e mi da:
pippo.c:1: error: syntax error before numeric constant
pippo.c:2: error; syntax error at '#' token
dove e' che sbaglio?, puo' essere anche dovuto al compilatore che non 
funziona?
spero' di superare questa cosa. ciao 

 spero' di superare questa cosa. ciao
Togli i numeri di riga.
Il C non è il basic :-)
saluti,
Peltio
-- 
Vuoi vedere come è fatto un brevetto? Su 
www.patentstorm.us
 trovi una 
montagna di brevetti americani, ordinati per categoria. Annuncio 
sponsorizzato dalla LIPSISC (Lega Internettiana per la Protezione dei 
Siti di Interesse Scientifico Conoscitivo). Aut. Min. rich.


ok, ora funziona :-) , ma io oltre che dal promt dei comandi lo posso 
compilare anche dal msys vero?.
comunque ho provato a compilarlo dal msys digitando:
gcc pippo.c -opippo.exe e mi da':
gcc.exe: pippo.c: no such file of directory
gcc.exe: no input files
che dovevo digitare diversamente dal msys?

 che dovevo digitare diversamente dal msys?
prova con il percorso completo del file, o aggiungi al path il percorso 
alla cartella che contiene i file che vuoi compilare.
saluti,
Peltio
-- 
Cerchi un enciclopedia concisa di termini matematici? Su 
http://mathworld.wolfram.com
 trovi un riferimento in continua crescita. 

Newsgroup: it.comp.lang.c
Titolo: due domande

avrei due domande da fare.
Innanzitutto come si fa a fare un programmino in c che regoli il flusso di
dati su una certa periferica (modem o ethernet) esprimible in kbit/s o in
kbyte/s in windows.
E seconda domanda di conseguenza: è necessario l'uso delle librerie socket?
e dove le posso trovare?

 ha scritto nel messaggio
news:9E9G8.86285$US3.1...@twister1.libero.it...

Newsgroup: it.comp.lang.c
Titolo: Indirizzamento ciclico

Salve, spero di non ripetermi.. ho a che fare con un buffer che deve essere 
riempito di short contiguamente; gli short vengono generati a gruppi di 160, 
ma io devo spostarmi lungo l'ingresso dei gruppi di 160short di uno alla 
volta, ma selezionandone sempre contemporaneamente 64; provo a spiegare:
160short | 160 short | ....
       |64short|
Avevo pensato inizialmente di usare un buffer di dimensione doppia e 
scrivere prima i 160 short iniziali e poi i 160 finali, quindi ricominciare, 
in questo modo il problema č risolto, ma mi impesto di while, for condizioni 
e stati da controllare..
Esiste un modo piů semplice tipo indirizzamento circolare con cui una volta 
scritto\letto tipo il 320 elemento dell'array possa "andare a capo" senza 
troppe rotture di #### per i controlli?
Forse sto dicendo la solita cazzatina.. ma per esempio mi č giunta 
all'orecchio una direttiva #PRAGMA...
c'azzecca qualcosa?
Scusate la pigrizia... grazie
__________________________
Se la so, rispondo sempre (quasi) 

 all'orecchio una direttiva #PRAGMA...
Le direttive #pragma sono estensioni proprie di ogni compilatore.

> Le direttive #pragma sono estensioni proprie di ogni compilatore.
Ah ok ti ringrazio.. cmq alla fine si almeno nella teoria si sta 
ridimensionando il problema...(meno male..)
Newsgroup: it.comp.lang.c
Titolo: Return e void

Scusate la domanda scontatissima, ma voglio avere chiara questa cosa e spero
che voi abbiate la pazienza di spiegarmela.
A scuola stiamo facendo C ed io a casa mi sto divertendo un casino ad
utilizzarlo. Scrivendo un qualsiasi programmino abbastanza semplice, mi
sonop sempre accorto che i compilatori ma danno un warning, ossia mi dicono
che la funzione main deve ritornare un valore. Ho letto che per evitarlo
bisogna scrivere void main al posto del solo main. Da un'altra parte mi
hanno detto che bisogna scrivere return 0 alla fine. Che roba serve questa
roba? Mi sembra di aver capito che bisogna specificare al compilatore che
questa funzione non ritorna alcun valore, ma esegue solo delle istruzioni.
Ma a che servono di preciso return 0; e void?
Grazie per la pazienza.
Ramses

Ma a che servono di preciso return 0; e void?
La dichiarazione corretta e :
 int main(void)
main deve sempre restituire un valore al sistema operativo .
Zero se tutto e' andato a buon fine ,diverso da zero se si e'
verificato qualche errore .

 questa funzione non ritorna alcun valore, ma esegue solo delle istruzioni.
Se la dichiarassi  come void main, allora avresti  ragione. Ma questa e`
non  solo  una cattiva  abitudine,  ma  anche una  cosa  sbagliata. Devi
mettere il sistema  operativo in condizione di sapere come  e` andato il
tuo programma.
///
Il mio consiglio e` di procurarti un libro sulla programmazione in C, ad
esempio il Kernighan e Ritchie  (Linguaggio C, Seconda Edizione), che ti
permettera` di apprendere le basi strutturali del linguaggio.
Bye,
 Emmanuele.
-- 
Emmanuele Bassi         |             [ 
http://digilander.iol.it/ebassi/
 ]
emmanue...@iol.it
  |
GnuPG Key fingerprint = 4DD0 C90D 4070 F071 5738  08BD 8ECC DB8F A432 0FF4

 int main(void)
A dire la verità ci sono 2 prototipi corretti per main: uno è int main
(void), l'altro è int main(int argc, char *argv[])
Lanugo

 wrote in message
news:slrn9fa6bf...@wolverine.lohacker.net...


sono parecchi. 
Fammi indovinare : Herbert Schildt ?

 >però secondo me è fatto malissimo, spiega veramente male anche se gli


sembra come libro sul C++, anche se sarebbe un poco OT?
Pessimo, come tutti i suoi libri.

Newsgroup: it.comp.lang.c
Titolo: Ancora su trasmissione seriale

Da quanto ho capito in win2000/XP è possibile comandare la seriale ma
tramite una chiamata a sistema.
Ho lurkato parecchio ma non sono riuscito a trovare quale sia.
Qualcuno mi da una dritta su come fare a trovarla?
Se sono OT reindirizzatemi in un NG adatto.Grazie Mille.
Andrea.

tramite una chiamata a sistema.
Sotto Windows, le seriali vengono gestite come file.  Guarda la
documentazione di CreateFile e CreateFileEx.  In ogni caso, sei OT qui
dentro, spostati su it.comp.programmare.win32.
-- 
Andrea Laforgia - a.laforgia(at)
libero.it
"There are three kinds of people in this world; 
 those who are good at maths and those who aren't".

grazie mille, ho trovato qualcosa. E' una spiegazione molto dettagliata
per trasmettere su seriale con CreateFile / SetCommxxxx / WriteFile...
"Andrea Laforgia" <x@x.x> ha scritto nel messaggio
news:ha0rfvso6jugfomav...@4ax.com...

Newsgroup: it.comp.lang.c
Titolo: Controllo file aperto

ciao
ho un problema: vorrei controllare che il file che ho aperto, non sia 
già aperto da qualche altro processo.
avete qualche suggerimento?
una volta aperto, se io faccio una write all'inizio del file, i dati che 
scrivo saranno scritti esattamente sulle stesse aree del disco?
grazie in anticipo
Giovanni

 scrivo saranno scritti esattamente sulle stesse aree del disco?
Si.
C:\>iao Angelo
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 scrivo saranno scritti esattamente sulle stesse aree del disco?
Credo proprio che tu non abbia questa garanzia.
EMG
--
EMAG Software Homepage:     
http://www.emagsoftware.it
The EMG's ZX-Spectrum Page: 
http://www.emagsoftware.it/spectrum
The Best of Spectrum Games: 
http://www.emagsoftware.it/tbosg

 Si.
Dici? Io non ci metterei la mano sul fuoco...


 Dici? Io non ci metterei la mano sul fuoco...
Se i due processi sono diversi, le tabelle dei file aperti sono diverse
e i puntatori alla posizione all'interno del file sono diversi.  La
scrittura di un processo ignora quelle dell'altro e ignora anche
i suoi riposizionamenti all'interno del file.
Di questo sono sicuro.


 Di questo sono sicuro.
Ma tutto questo che c'entra? L'amico chiedeva semplicemente se riaprendo
un file in scrittura veniva utilizzato lo stesso spazio sull'hard disk e
questo credo nessuno lo possa garantire.


 questo credo nessuno lo possa garantire.
Osp... Invece di "disco" ho letto "file".
Sorry.


avete qualche suggerimento?
access()
Non è standard, ma gli somiglia (POSIX, per la precisione).
-- 
Andrea Laforgia
www.geocities.com/andrealaforgia
"640kb of memory should be enough for anyone." -- Bill Gates.
Newsgroup: it.comp.lang.c
Titolo: Sulle dir.....

Ciao ragazzi,
uso il C da circa 3 ormai ma ora ho un problema.
Devo prendere la lista di tutti i file presenti in una dir per poi 
parsarli,etcetc.
Sono sicuro che in C non si possa avere la lista dei file in una dir,
quindi idee?!?!??!
(anche le chiamate POSIX mi vanno bene)
Grazie.
-- 
 Signed: Paolo"Flag"Pisati            Be-Developer#E-17711
 "Resistence is not futile.Be."       "Death to false metal!!!"
 

 (anche le chiamate POSIX mi vanno bene)
in Dos e Win32 si puo' usare findfirst() e findnext(), in Unix si puo'
far esegure 'ls' e recuperare l'output, pero' purtroppo soluzioni
portabili non ne conosco.
Spero comunque che ci sia!
Ciao.
-- 
     (ZZZ)       Filippo Salotti, Bagni di Lucca, Lucca, Italy.
    //   \\  _                 E-mail : 
fil...@humnet.unipi.it
   /Y\    ZD<_o===============================================o
 .oZZZZZo.     | Studente Ingegneria Informatica Automatica  |
<OXXXXXXXO>    | Dip. Sistemi Elettrici Universita' di Pisa. |

Filippo Salotti (
fil...@lunet.forum.lu.it
) wrote:
[ snip ]
: in Dos e Win32 si puo' usare findfirst() e findnext(), in Unix si puo'
: far esegure 'ls' e recuperare l'output, pero' purtroppo soluzioni
: portabili non ne conosco.
Ma per piacere ! In uno Unix serio (es. Linux 8-P) si usano le chiamate
POSIX opendir(), readdir(), closedir(), ecc.
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: Ncurses

Come faccio a far sparire il cursore in attesa dell'immisione di un
carattere da tastiera?

 carattere da tastiera?
Sim sala bim!
--
 Ciao, Luca.
 Reply to 
luca....@tiscalinet.it
Newsgroup: it.comp.lang.c
Titolo: Re: memoria dinamica e puntatori

  }
Ovvero 65k valorizzati a 2 con conseguente sforamento dei limiti del
blocco allocato (e ti conviene usare memset() per valorizzare blocchi
di memoria con lo stesso valore)...
C:\>iao Angelo
P.S. Ulteriori domande ti conviene farle in un NG dedicato alla
     programmazione per DOS.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

A parte che per allocare 64k di memoria andrebbe fatta uan malloc(65535)...
-- 
Quando noi ignoranti eravamo di piů, tutto era piů bello (A. Celentano).
  ___   _   ___ _  _______   _______ ___
|   \ /_\ | _ \ |/ / _ ) \ / /_   _| __|
| |) / _ \|   / ' <| _ \\ V /  | | | _|
|___/_/ \_\_|_\_|\_\___/ |_|   |_| |___|

 A parte che per allocare 64k di memoria andrebbe fatta uan malloc(65535)...
Ok, aggiungi "circa", dopo "ovvero". In ogni caso, lo sforamento del
blocco di memoria allocato resta paro paro.
C:\>iao Angelo


Ciao
Ho un problemino da n00b! Da qualche giorno mi sto addntrando alla
programmazione di videogiochi 2D, e così sto un pò impazzendo tra
schermi virtuali e fisici!
Da qualche giorno sto impazzendo perchè non riesco ad allocare uno
spazio di memoria da 64000kb per uno schermo virtuale!
PROBLEMA:
Devo allocare uno spazio di memoria di 64000kb il cui indirizzo della
cella iniziale deve risiedere nel puntatore "schermoVirtuale"! Vado
così ad utilizzare la funzione farmalloc:
 unsigned char far *schermoVirtuale;
 schermoVirtuale=(unsigned char far*)malloc(64000);
sembra andare tutto bene, ma in realtà ho dei problemi! 
Non riesco ad inizializzare tutte le celle di memoria allocate!
Infatti se faccio un for:
 for(unsigned int x;x<65000;x++) {
	schermoVirtuale[x]=2;
 }
 
ho come risultato che quando faccio RUN mi si blocca la schermata!
La cosa strana è però che se mettero come condizioni che x deve
arrivare ad un valore molto più piccolo, tipo x<20 il programma viene
eseguito correttamente, ovvero mi inzializza i questo caso le prime
venti celle della memoria a '2'!
Ora io proprio non capisco perchè succeda questo???
Confido nel vostro immenso sapere :)
PS: vi allego il codice intero. Uso come compilatore turbo c 3.1.
Ciao e Grazie
CODICE:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <alloc.h>
void copiaSchermo(unsigned char far*,unsigned char far*);
int main(void){
	asm {
		mov ax,13h
		int 10h
	}
	unsigned char far *schermoFisico;
	unsigned char far *schermoVirtuale;
	int x,y;
	schermoFisico=(unsigned char far*)MK_FP(0xA000,0x0000);
	schermoVirtuale=(unsigned char far*)farmalloc(64000);
	for(x=0;x<320;x++) {
		for(y=0;y<200;y++) {
			schermoFisico[x+(y*320)]=4;
		}
	}
	for(unsigned int x;x<65000;x++) {
	        schermoVirtuale[x]=2;
        }
	copiaSchermo(schermoVirtuale,schermoFisico);
	getch();
	farfree(schermoVirtuale);
	return 0;
}
void copiaSchermo(unsigned char far *sV,unsigned char far *sF){
	int x,y;
	for(x=0;x<320;x++) {
		for(y=0;y<200;y++) {
			sF[x+(y*320)]=sV[x+(y*320)];
		}
	}
}
Newsgroup: it.comp.lang.c
Titolo: [OT] Execution configurations in CUDA

Salve a tutti,
sbaglio o le execution configuration si possono dare slo alle funzioni 
__global__, e non alle __device__ ?
Pleg 

 __global__, e non alle __device__ ?
Se a qualcuno dovesse interessare, la risposta sembra essere "si": 
__device__ kernels non hanno execution configuration.
Pleg
Newsgroup: it.comp.lang.c
Titolo: Eliminare riga da un file

Salve, 
richiedo gentilmente un aiuto ed alcuni consigli sulle funzioni e
trucchi che possono essere utilizzati per eliminare una linea da un
file. Sto realizzando (a fini didattici) una lista dinamica di nodi che
viene inizializzata attraverso la lettura di un file. Altre funzionalità
sono la lettura, inserimento ed eliminazione di un nodo. Ora quando devo
eliminare un nodo, sempre il primo della lista come posso fare?
Esempio del file:
6
1
7
dopo l'eliminazione deve rimanere:
1
7
Grazie a tutti.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 7
Non esiste una funzione per eliminare delle informazioni da un file.
Devi aprire il file di partenza, copiare solo quello che ti serve
su un file temporaneo e poi rinominare il file temporaneo.
Questo in generale.
Poi se il file e' un file binario composto da record di
lunghezza uguale e se il file e' grande allora
possono esistere delle strade piu' efficienti alla cancellazione
"fisica" di un record in mezzo al file. Ma mi sembra che questo non
sia il tuo caso.
ciao.
g.

quando scrivi di eliminare sul file un linea, è un po' generica
l'espressione, perchè i simboli non hanno un significato di riga
pertanto in questo tuo caso la riga che s'intende è un tipo di
struttura indicizzata dal nome 6
in un file di testo la riga s'intende con i RETURN
proseguendo, per eliminare la struttura che volevi...
se si ha un file salvato su disco con 3 strutture dati salvate 6 1 7,
devi aprire il file, svuotare lo stream e riscrivere le strutture
rimaste, in questo caso 1 e 7,
altrimenti elimini il file e lo ricrei con la lista 1 e 7
ciao duido

Newsgroup: it.comp.lang.c
Titolo: c++ builder, va in dos ?

Ciao a tutti, dopo circa una settimana di consigli raccolti su vari NG
sono riuscito a creare il mio piccolissimo prog. in c++, ma alla fine non ho
comunque raggiunto lo scopo!
In pratica volevo creare un prog. che girasse in dos, ma l' unico
compilatore che ho (e so usare molto poco) č il Borland C++ Builder, ma non
ho capito se č possibile creare un prog che gira sotto dos (non consolle dos
in windows). Il mio programma deve semplicemente mandare in esecuzione un
file su c:\ se verifica la presenza di un altro, altrimenti esce.
Mi date un diritta ? Magari dicendomi se č possibile attivare qualche
opzione del mio compilatore per fare cio che voglio, o anche segnalandomi un
link da dove scaricare un compilatore per il dos, compatibile con il file
sorgente del c++ borland (perchč altrimenti non saprei da dove iniziare !)
 Grazie mille e ciao a tutti.
Nicola

sorgente del c++ borland (perchè altrimenti non saprei da dove iniziare !)
www.delorie.com/djgpp/
utilizza il servizio ZipPicker

 Nicola
C++Builder ed il free compiler BCC55 creano applicazioni a 32 bit
(GUI o console Win95/98).
Per appricazioni Dos 16 bit occorrono versioni precedenti, ad es.
il Turbo C 1.0 / 2.0 che ora sono scaricabili dal sito Borland.
HTH
Newsgroup: it.comp.lang.c
Titolo: graffe con windows me

ciao a tutti ho installato windows me.
ma anche impostando la tastiera americana. quando avvio TC rimane sempre
quella italiana!! come posso fare????

Andrea,
Andrea Rossetti-SCUD009 wrote:

   Ed il tuo problema con il C e`?...
--
Alla prossima,
Marco


nel file autoexec.bat
dovresti mettere
la seguente riga
keyb us ,, C:\windows\command\command.sys
vai al prompt c
edit autoexec.bat
ed inserisci al riga

keyb us ,, C:\windows\command\command.sys
   OT per OT [1]: Ctrl-Alt-F1 (-> layout us), Ctrl-Alt-F2 (-> layout
it), senza modificare nulla.
[1]: OT^2
-- 
Totuccio.

Newsgroup: it.comp.lang.c
Titolo: Qualcuno di voi ha esperienza con CodeBlocks qui ?

Ho un problema molto grave con i custom
makefile e vi sarei grato se qualcuno potesse
aiutarmi.

 aiutarmi.
Io ho provato una sola volta ad usare i custom makefile con CodeBlocks 
ma ho lasciato perdere perche' il custom makefile in questione era 
troppo "intricato" (includeva un'altro makefile e funzionava bene solo 
se lanciato da shell).
Se non ricordo male la cosa piu' pericolosa era che in fase di creazione 
del progetto il makefile "custom" poteva essere sovrascritto da quello 
creato da CB se non si settavano le opzioni giuste.
Remo.D
Newsgroup: it.comp.lang.c
Titolo: Posso fare ...

-- 
Salve a tutti , vorrei sapere se posso passare ad una funzione un #define
uno ' 1 ' 
 la funzione
a due parametri in entrata , posso fare cosi:conta(totale,uno); il rhide mi
dice:
Warning:passing arg 2 of 'conta' makes pointer from integer without a cast
come posso fare per passare un define (che e un carattere) ad una funzione?
Ah , una curiosità:potrei utilizzare  Rhide  con un compilatore diverso dal
gcc?
Grazie  a tutti
Ciao  Roberto
rober...@inwind.it

 wrote in message
news:01c10eb4$5c6660c0$LocalHost@ROBERTO...


 come posso fare per passare un define (che e un carattere) ad una
funzione?
Sicuro che il la funzione richieda un int ?
Newsgroup: it.comp.lang.c
Titolo: chi lo sa?

Ciao a tutti, dovrei sviluppare un programma che soddisfi queste esigenze:
"Un file di testo contiene per ciascuna riga i dati Cognome, Nome,
TasseDovute e TassePagate relativi ad una serie di persone. I dati sulle
righe sono separati da uno o più spazi, il numero delle righe del file non è
noto a priori.
Ad esempio:
		Rossi Mario 1200 1200
		Sharansky Vladimir 5400 3000
		Peterson Kelly 9600 0
		El Harad Mouchine 2200 2200
		Verdi Gianni 5400 3000
 
Dopo aver definito tramite typedef una opportuna struct Contribuente (e gli
altri tipi che si riterranno necessari) destinata a contenere i dati di un
individuo:
a.Si scriva una funzione Conta che dato come parametro stringa il nome di un
file, nel formato sopra indicato, conta quante righe sono presenti nel file
stesso.
b.Si scriva una funzione Leggi che dato come parametro il nome di un file ed
un array di elementi di tipo Contribuente, inizializza l'array con i dati
letti dal file strutturato come nella descrizione iniziale.
d. Si scriva una funzione booleana ControllaIndividuo che dato un parametro
di tipo Contribuente restituisce 0 se questo è un evasore fiscale, 1
altrimenti. , Si definiscono evasori coloro per i quali le tasse dovute
superano quelle versate.
e. Si scriva una funzione ContaEvasori che dato come parametro un array di
tipo Contribuente restituisce il numero di evasori presenti nell'array. La
funzione deve utilizzare la funzione definita al punto d.
f. Si scriva una funzione PeggiorEvasore che dato un array (come sopra)
restituisce l'indice corrispondente ad uno degli individui che ha evaso il
maggior ammontare di tasse, oppure restituisce -1 se nessuno ha evaso le
tasse.
g. Si scriva una funzione ControllaNominativo che dato un array (come
sopra), e il cognome e nome di un individuo restituisce 0 se è presente
nell'array ed è evasore, 1 se è presente e non è evasore, -1 se non è
presente nell'array. La funzione deve utilizzare quella definita al punto d
h. Si scriva un programma main che utilizzando le funzioni di cui ai punti
precedenti (in mancanza scrivere le sole intestazioni):
alloca un array V di elementi di tipo Contribuente di dimensione sufficiente
ad accogliere i dati contenuti in un file testo di nome "contribuenti.txt",
secondo il formato indicato all'inizio
carica i dati dal file di nome "contribuenti.txt" scrivendoli nell'array V
scrive sullo standard output la frase:
Gli evasori sono NNN ed il peggior evasore è YYY ZZZ
Dove NNN indicherà il numero totale di evasori, mentre YYY e ZZZ
rispettivamente Nome e Cognome del peggior evasore."
Non mi è chiara una cosa, per il punto b, come strutturereste la funzione
leggi?
--------------------------------
Inviato via 
http://usenet.libero.it

 [snip]
by LjL
ljl...@tiscalinet.it
Newsgroup: it.comp.lang.c
Titolo: un consiglio per me grazie

Ho installato da un po' di giorni linux, e vorrei imparare il C , visto che
contiente molti software per sviluppare programmi in questo linguaggio....
io volevo chiedervi da dove iniziare, ho esperienze di programmazione in
basic e visual basic, ma esperienze diciamo molto "lievi"...
ce la
faro'? hehe
grazie e buon lavoro
--------------------------------
Inviato via 
http://usenet.iol.it


The trouble with being poor is that it takes up all your time.

Newsgroup: it.comp.lang.c
Titolo: operare nel registry

Ciao, esistono delle funzioni che ti possano modificare o leggere le chiavi
del registry (ad esempio l'equivalente della RegOpenKey delle API)???

Ehm...veramente non riesco proprio a capire dove sia il problema: usa le
API! O te forse volevi sapere come costruirti una funzione analoga senza
usare le api?secondo me non serve cmq a nulla, dato che per lavorare in WIN
(perche lavori in WIN32 vero?!^_^) le api le devi usare lo stesso....

Newsgroup: it.comp.lang.c
Titolo: Cercasi programmatori C/C++, sede a Torino (non telelavoro), Video/Audio

Per progetti nel campo
Video/Audio streaming cerchiamo
programmatori/programmatrici C/C++:
Strong skills:
+ C/C++,
+ Visual C++ (MFC/MSDN/SDK's)
+ Multimedia applications con DirectX,
+ Multimedia Streams
Welcome:
+ Conoscenze Hardware per Video/Audio capture
+ Conoscenza problematiche Client/Server
Sede di lavoro = Torino;
Contratto ? assunzione : libero professionista;
Disponibilita' = Settembre;
Carattere = ":-)";
Cosa devi fare (contatto personale fino 7.8 e dal 20.8):
#include "tuo\CV.h"
#include "voglia.h"
#if interested
mail(
jur...@shorr-kan.com
, "Subject: CV-sk.08.2001 C/C++");
ShellExecute(NULL, "open", "
http://www.shorr-kan.com
", "About
us...","|",SW_SHOWALL);
#endif
Jurgen Schwietering

 #endif
E questa sarebbe una offerta seria ?!?
Alex

Cerchiamo persone con un certo spirito, quindi...
"Alex" <nom...@bow.wow> wrote in message
news:cCfa7.5643$te7.2...@news.infostrada.it...


 Cerchiamo persone con un certo spirito, quindi...
...impara a quotare.
-- 
...FreE FrAGs FOr ALl...
GPQuake Clan Proud Members 
email:ho...@libero.it
---------------------------

 ...impara a quotare.
?

 wrote in message news:95hdk9...@inwind.it...


 del contenuto di certi messaggi devi vedere te stesso.
la seconda che hai detto...