mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c
Titolo: Sorgenti online

Mi dite un sito che mette a disposizione sorgenti c per studiarli,
modificarli, usarli, ecc, ecc.? Grazie
--------------------------------
Inviato via 
http://usenet.libero.it

 modificarli, usarli, ecc, ecc.? Grazie
www.gnu.org
www.sourceforge.net
www.freshmeat.net
E in  genere qualune programma coperto  da GPL. Cerca un po'  quello che
vuoi, trovi progetti  da poche decine di righe di  codice fino a qualche
milione.
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
Un apostolo vedendo Gesu` camminare sulle acque:
- Cazzo se e` buono 'sto fumo!!!

 ha scritto nel messaggio
news:151Z26Z83Z247Y1...@usenet.libero.it...


Newsgroup: it.comp.lang.c
Titolo: intero unsigned a 64 bit

Ciao gente. Sto scrivendo un programma in C e, per quanto possibile, vorrei
rispettare tutti gli standard per assicurarmi la portabilità del mio
progetto. Adesso però ho un problemino: devo utilizzare delle variabili a 64
bit. Emulare tali variabili con 2 variabili a 32 è una soluzione poco
ottimizzata, mentre a me serve la massima ottimizzazione possibile. In vc
potrei usare __int64, ma ciò troncherebbe inesorabilmente la portabilità del
codice (ad esempio in gcc dovrei utilizzare - o almeno così mi hanno detto -
long long). Qual è secondo voi la soluzione migliore?
Grazie in anticipo per le eventuali risposte.
Ciauz, Spider


wrote:

A parte il fatto che uno standard non esiste, e che l'una e l'altra
forma e' indifferente, puoi usare una #define o una typedef da
personalizzare a seconda degli ambienti, es:
#ifdef BILLGATES
typedef VERYLONG	__int64
etc.
In secondo luogo, credo che attualmente esistano ben pochi compilatori
in grado di effettuare operazioni sui 64 bit in una passata, molti in
realta' "emulano" utilizzando dei 32 bit.
Che io sappia, specie chi programma in ASM usa effettuare le
operazioni a 64 bit tramite codice MMX, non so se esistono gia'
compilatori che fanno la stessa cosa.
ciao, acc.   
a...@libero.it

 compilatori che fanno la stessa cosa.
Beh dipende, per backward compatibility si può emulare una qword con due
dword senza ricorrere a mmx, o comunque può essere + logico usare le
istruzioni FPU piuttosto che le MMX.

istruzioni FPU piuttosto che le MMX.
L'adozione di codice a 64 bit esclude la backward compatibility.
MMX nel caso di operazioni su interi e' piu' veloce rispetto all'FPU,
a livello di praticita' siamo li', entrambi i metodi usano gli stessi
registri (quelli dell'FPU).
ciao, acc.   
a...@libero.it
Newsgroup: it.comp.lang.c
Titolo: problema Fax Server

Di recente ho installato in un server NT una scheda Fax Gammalink CPi/200, e
grazie alle funzioni della libreria a corredo sono riuscito a compilare un
eseguibile che manda fisicamente fax a linea di comando, prendendo in input
in numero di fax destinatario ed il file da mandare (testo o TIFF).
Il problema è che, lasciando quasi inalterato il sorgente, eccetto per
l'immissione delle variabili in input (che questa volta vengono prese
dall'environment di una pagina html, tramite GET), una volta compilato non
vuole saperne di funzionare tramite cgi-bin.
Sembra che l'IIS di NT non riesca ad inizializzare la scheda fax o che non
riesca ad accedervi, attarverso il cgi-bin, quando nel primo caso il tutto
funzionava alla perfezione.
Quale può essere il problema secondo voi?
Grazie in anticipo per eventuali risposte.
Fab

sei OT
vai su it.comp.programmare.win32
"dumah" <fabi...@NOSPAMngweb.it> wrote in message
news:XfHJ9.5221$ab2.1...@news1.tin.it...


 Quale può essere il problema secondo voi?
Scusa, ma la programmazione è una cosa logica che si basa su dati precisi!
Secondo te come farebbe uno ad aiutarti con dati tipo: "una volta compilato
non vuole saperne di funzionare tramite cgi-bin"?
Innanzi tutto compilato da quale linguaggio sorgente? E poi cosa farebbe
quando "non vuole saperne di funzionare"? Grida e fa i capricci? Magari dà
un messaggio di errore? E ammesso che dia messaggio di errore, quale
sarebbe? Cosa dice l'error log? Un programma è per lo più composto da
centinaia di operazioni, come pensi che si possa fare a sapere quale
fallisce in ambiente CGI e per quale motivo?
--
perl -MLWP::Simple -e "getprint(' 
http://perl.4pro.net
 ')"
"dumah" <fabi...@NOSPAMngweb.it> wrote in message
news:XfHJ9.5221$ab2.1...@news1.tin.it...


 un messaggio di errore?
GRN_INIT  Failure  status=117  (grnInit sarebbe la funzione di
inizializzazione della scheda)
nel manuale codice_errore della scheda come soluzione suggerisce di
contattare il supporto tecnico gammalink.
Dimmi un po' tu, se ti viene qualche idea.
Fuori dall'ambiente CGI, ripeto, il tutto funziona alla perfezione.
Fa

Controlla le variabili ENVIRONMENT, che sotto CGI sono differenti, perché
inserite dal server.


Newsgroup: it.comp.lang.c
Titolo: compilazione sotto linux


http://www.poli.studenti.to.it/~s93146/
Segmentation Fault. Core dumped.

 wrote in message
news:cjmf89...@cerbero.squa.it...


Prova inserendo "-lm" nella riga del comando di compilazione.

 libreria math.h . 
gcc -lm ALTRE_OPZIONI
Ciao,
 Emmanuele
-- 
Emmanuele Bassi         |  Linux: [ 
http://digilander.iol.it/ebassi/linux/
 ]
                        |   SLRN: [ 
http://digilander.iol.it/ebassi/slrn/
  ]
emmanue...@iol.it
  |   SETI: [ 
http://digilander.iol.it/ebassi/seti/
  ]
  GnuPG Key Fingerprint: 9747 635E B95A B0B3 4370 1CAA CAF7 512B 945C A44C
Newsgroup: it.comp.lang.c
Titolo: ECCO IL CODICE CHE MI ERO DIMENTICATO...

/*SCUSATE MI ERO DIMENTICATO IL CODICE*/
/* INCLUDE  */
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
/* DICHIARAZIONI */
void scrivi(void);
void leggi(void);
typedef struct {
         char nome[20];
         char cognome[20];
         char address[40];
         char tel[10];
        } Amico;
Amico amici[100];
int i, risp, flag;
char c, risp1;
/* MAIN */
main ()
{
do
{
 clrscr();
 gotoxy(25,1);
 textcolor(12+128);
 printf("MENU':\n");
 printf("\n");
 printf("1. SCRIVI.\n");
 printf("2. LEGGI.\n");
 printf("3. ESCI.\n");
 printf("\n");
 printf("SCELTA: ");
 scanf("%d", &risp);
 printf("\n");
 switch(risp) {
               case 1: scrivi();
                       flag=0;
                       break;
               case 2: leggi();
                       flag=0;
                       break;
               case 3: flag=0;
                       break;
               default: printf("IL NUMERO INSERITO E' ERRATO !");
                        flag=1;
 }
 clrscr();
 printf("VUOI TORNARE AL MENU'?(S=1,N=0)\n");
 scanf("%d",&flag);
 }while (flag==1);
 }
        /* SCRITTURA SU STRUTTURA */
void scrivi(void)
{
i=0;
getch();
do {
    clrscr();
    printf("inserisci il nome dell'amico: \n");
    gets(amici[i].nome);
    printf("inserisci il cognome dell'amico: \n");
    gets(amici[i].cognome);
    printf("inserisci l'address dell'amico: \n");
    gets(amici[i].address);
    printf("inserisci il numero di telefono dell'amico: \n");
    gets(amici[i].tel);
    gotoxy(23,13);
    i++;
    clrscr();
    printf("vuoi inserire un nuovo amico? (S/N) \n");
    do c=getch(); while (c!='S' && c!='N');
    }while (c=='S');
 }
        /* LETTURA DA STRUTTURA */
void leggi(void)
{
 i=0;
 while(i<=100 || risp1=='S')
     {
     printf("%d\n",i+1);
     printf("NOME: %s\n", amici[i].nome);
     printf("COGNOME: %s\n", amici[i].cognome);
     printf("ADDRESS: %s\n", amici[i].address);
     printf("TEL: %s\n", amici[i].tel);
     printf("CONTINUA ? (S/N) \n");
     do c=getch(); while (risp1!='S' && risp1!='N');
     i++;
     }
 getch();
 }

 wrote in message
AHWz6.22754$wG3.1...@news.infostrada.it...


 wrote in message
AHWz6.22754$wG3.1...@news.infostrada.it...

Newsgroup: it.comp.lang.c
Titolo: unsigned int

salve
non riesco a memorizzare in un intero un numero superiore a 2 ^8
ho provato anche a dichiararlo unsigned int ma il problema rimane.
Eppure l'intero è costituito da 16 bit, quindi teoricamente dovrei arrivare
a 2^16 se considero il numero senza segno.
Da cosa dipende?
Devo includere qualche libreria particolare?
sul mio PC:
sizeof(int)=2;
Ringrazio in anticipo.

 non riesco a memorizzare in un intero un numero superiore a 2 ^8
rettifico: volevo scrivere 2^15

rettifico: volevo scrivere 2^15
Semmai 2^16 - 1. ;-)
Un int a 16 bit (signed o meno) dovrebbe avere 2^16 possibili valori
(tra -32768 e + 32767 o tra 0 e 65535).
-- 
Cordiali saluti
  Artemio

non riesco a memorizzare in un intero un numero superiore a 2 ^8
Strano. Usi la scanf?
Non è che hai usato %c al posto di %d?
Prova a postare il codice.
-- 
Cordiali saluti
  Artemio

 Prova a postare il codice.
Buona idea..
Bye.
Katte.

 %d....
Già... ;-)))
Quando scrivevo per un attimo mi dev'essere sfuggito il subject. :-)
Probabilmente comunque l'amico deve aver trovato la soluzione, visto che 
non si è fatto più vivo.
Newsgroup: it.comp.lang.c
Titolo: dubbio su esadecimali ....

ciao...
ho bisogno di una consulenza .... 
quando mi ritrovo :
#define PID_MAX 0x8000
che valore viene assegnato a PID_MAX ??
come faccio a calcolarlo???

te...@test.it
 (Andrea):

Se non hai voglia di contare:
printf("%d", PID_MAX);
Se vuoi contare a mano l'algoritmo per cambiare dalla base 16 alla 10
e':
"Prendi la cifra nella posizione x (contando da destra a sinistra e
partendo da 0) e la moltiplichi per la base (16) elevata a x."
Potresti generalizzarlo per ogni base, ma non trovo l'algoritmo al
momento.
Il risultato nel tuo caso: 8*16^3 + 0*16^2 + 0*16 + 0 = 32768.
La conversione da base 16 a 2 e 4 e' immediata, basta prendere le
cifre una a una e tradurle nella corrispondente in base 2 o 3. Es in
binario e' 1000 0000 0000 0000.
-- 
Mox
"Trust the programmer."
"Don't prevent the programmer from doing what needs to be done."
"Keep the language small and simple."
"Provide only one way to do an operation."

B la base
n_k = n0,n1,n2,...,nk
N_B = nk * B^k + ... + n0 * B^0
ciao.

printf("%d", PID_MAX);
Grazie Max,
so che e' una domanda da manuale ma non l'ho dietro...
per avere da int a esadecimale come deve essere la printf?
#define PID_MAX 32768
printf(" %...", PID_MAX);
grazie ancora!

 ha scritto nel messaggio
news:3ce35b3f...@news.interbusiness.it...

%x o %X
ciao,
Cecco
---------
Visit: 
www.sourceforge.net/projects/dlab
Home Page: 
http://dlab.sourceforge.net/
Dlab-developer mailing list
https://lists.sourceforge.net/lists/listinfo/dlab-developer

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

salve a tutti.
come si fa per scrivere sullo schermo delle stringhe
specificando riga e colonna?
grazie - S.
--  
Postato da Virgilio Newsgroup: scopri i nuovi gruppi 
Eros, foto e video a 
http://newsgroup.eros.virgilio.it


L'ambiente per ora è Windows....
quali potrebbero essere le librerie adatte e, soprattutto, dove
posso trovarle?
Ho scaricato Lcc-Win32 e sto provando ad usarlo.
Vorrei rimanere in ambito non grafico per mantenere la
compabilità in altri ambienti.
Tieni conto che provengo (anni addietro) da Clipper.
Allora ere relativamente facile, bastava:
@ riga, colonna say "testo"
ciao e grazie!
Sandro



ne avevo già sentito parlare; farò qualche tentativo.
ciao - S.

Newsgroup: it.comp.lang.c
Titolo: Quali differenze tra il C e il C++ ?

 mailto:
gar...@usa.net
 <
- >ICQ UIN# 23780140 <-


Se scrivi codice C conforme allo standard piu' recente, questo
deve essere accettato anche da un compilatore C++ aderente allo
standard. In questo senso il C++ e' un superinsieme del C.
Per il resto il C++ offre costrutti e caratteristiche differenti,
implmentando alcuni paradigmi della programmazione ad oggetti:
ereditarieta', polimorfismo, genericita', eccezioni senza la pretesa
di essere esaustivo.
Se hai accesso a 
www.dejanews.com
 prova a cercare alcuni thread passati
di Alex Martelli, che si e' piu' volte espresso in modo molto chiaro
sull'argomento.
-----------== Posted via Deja News, The Discussion Network ==----------
http://www.dejanews.com/
       Search, Read, Discuss, or Start Your Own    

di essere esaustivo.
Il compilatore C++ compilerą sorgenti C solo e solo se esso č un compilatore
C/C++, inoltre requisito fondamentale č che i file abbiano estensione .c e
non
.cpp
Se il compilatore č soltanto C++ allora non č affatto detto che con esso si
possano
compilare file c. Lo standard C++ non prevede compatibilitą con il C.
Se invece il compilatore + C/C++ allora le incompatibilitą non vi sono.
(non mi riferisco solo alla sintassi del linguaggio ma anche alla semantica)
Att'uttoggi č difficile trovare un compilatore solo C++ in genere trovi
sempre
un compilatore C/C++ e da qui l'equivoco che se compili un sorgente C con
un compilatore C++ esso deve funzionare.

 Lo standard C++ non prevede compatibilità con il C.
Assolutamente falso.
Se leggi lo Stroustrup, il C++ è stato volutamente creato non "perfetto" o
non pefettamente OO, proprio per mantenere il più possibile la compatibilità
col C.
Un compilatore C++ è fatto apposta per compilare corettamente anche codice
C, e tutto questo per dare al programmatore la possibilità di usare
liberamente la quantità di codice C già scritto o librerie C già pronte.
TobiX


A parte il fatto che l'estensione .CPP è una convenzione del singolo
compilatore (ad esempio DJGPP utilizza .CC), il resto del discorso
dell'amico sopra non mi sembra errato. Ci sono delle differenze tra il C
e il C++ che fanno si che un programma C possa non funzionare
correttamente se compilato con un compilatore in modalità C++.
EMG

TobiX
Caro mio devi sapere che il compilatore si comporta diversamente a seconda
dell'estensione del file!!!!
hai mai sentito parlare dei nomi decorati ?
sai come un compilatore CPP (solo) alloca la memoria ?
ecc. ecc..
TI RICORDO CHE IL LINGUAGGIO NON E' SOLO LA SINTASSI!


ICQ #34602650
Newsgroup: it.comp.lang.c
Titolo: scanf e loop...chi mi aiuta?

Come ho già scritto nel mio post del 15 Agosto ho un problema di loop. Ho 
fatto il codice allegato ma se inserisco un carattere invece che un intero 
il programma va in loop.
Da quanto ho letto nel manuale che uso lo scanf non è una funzione così 
furba: se voglio leggere un int ma scrivo un carattere non numerico scanf 
non lo legge e lo lascia nel buffer della tastiera così il programma va in 
loop. Ho capito bene?
A questo punto dovrei creare una funzione (che poi mi potrebbe servire per 
altri problemi)
Ho in mente due possibilità:
1) leggo una stringa di caratteri numerici e li converto con atoi in una 
funzione apposita
2) testo il return code di scanf: se è zero bisogna fare un ciclo con un 
clrscr, un flushq e ripetere la richiesta
di digitare un numero.
C'è qualche anima gentile che mi aiuta a scrivere la funzione?
Grazie :)
//ArrayDinamico
#include <malloc.h>
#include <string.h>
#include <conio.h>
#include <stdio.h>
#include <process.h>
void CopiaArray(int *BaseArray,int *CopyArray,int Len);
void main(void)
{
  int nI;
  int Len = 1;
  int *OldArray;
  int *NewArray;
  int Number;
  OldArray = (int*) malloc(sizeof(int)*Len);
  if( OldArray == NULL )
  {
    printf("E' impossibile allocare i bytes richiesti\n");
    exit(1);
  }
  printf("Prego inserire un intero\n");
  scanf("%d",&Number);
  while(  Number != 0 )
  {
    OldArray[Len-1] = Number;
    NewArray = (int*) malloc(sizeof(int)*(Len+1));
    if( NewArray == NULL )
    {
      printf("E' impossibile allocare i bytes richiesti\n");
      exit(1);
    }
    CopiaArray(OldArray,NewArray,Len);
    free(OldArray);
    OldArray = NewArray;
    Len++;
    printf("Prego inserire un intero\n");
    scanf("%d",&Number);
  }
  printf("Letti con successo n. %d interi \n",Len-1);
  for(nI=0;nI<Len-1;nI++)
  {
    printf("Il numero intero %d e' %d \n",nI+1,OldArray[nI]);
  }
  free(OldArray);
}
void CopiaArray(int *BaseArray,int *CopyArray,int Len)
{
  int nI;
  for(nI=0;nI<Len;nI++)
  {
    CopyArray[nI] = BaseArray[nI];
  }
}
_________________________________________________________________
Get your FREE download of MSN Explorer at 
http://explorer.msn.com/intl.asp
-- 
Posted from [147.123.1.111] by way of 
f219.law11.hotmail.com
 [64.4.17.219] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Puoi creare un funzione che legge un char con la scanf, lo converte in
intero semplicemente uguagliando il valore di una variabile int al tuo char,
e se il valore del char è compreso tra 0 e 9 allora va bene e return
l'intero, altrimenti errore, ritorna che so 100, e gli fai rileggere il
char. Penso che se inserisci un valore non numerico viene convertito in un
numero esadecimale ma di certo non tra 0 e 9, perchè quei numeri dovrebbero
essere riservati al casting automatico. Potrei aver detto delle bestialità,
ma se funziona è una soluzione semplice. Probabilmente ci saranno molti modi
più "puliti" di farlo, ma alle 23.40 non mi viene in mente altro.
CIAO!

 ha scritto nel messaggio
news:F219mczBTP47B...@hotmail.com...

Newsgroup: it.comp.lang.c
Titolo: system(command)

Ciao a tutti
 scusate ma se faccio
main()
{
char command;
command = "rm /home/test/blabla.txt"
system(command)
return 0
}
non dovrei cancellare il file blabla.txt sotto linux?


Ho risolto mi ero dimenticato
char *command;

 main()
impara a specificare esplicitamente il valore di ritorno di main():
int main() {
...
}
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

luca72 ha scritto:

A parte che command dovrebbe essere un puntatore quindi char *command
ma detto questo non si pu� vedere un main non dichiarato int, e
l'utilizzo di system per rimuovere un file oltretutto non hai controllo
se il file � stato rimosso o meno.
#include <stdio.h>
#include <unistd.h>
int main(int argc, char** argv)
{
  char *filename = "/tmp/pippo.txt";
  if(unlink(filename))
    return 0; // qui tutto ok
  else
    return 1; // problemi a rimuovere il file
}
sarebbe meglio definire main come int (int, char**).
micheg

 micheg
perchè scusa? se non ti servono gli argomenti che te ne fai di argc/
argv

 argv
Credo che michelangelo si riferisse alla specificazione del tipo di
ritorno e ha citato un tipico prototipo di main(). Ovvio che la versione
senza argc e argv va bene ugualmente:
int main() 
� un prototipo perfettamente lecito.



anche:
main()
da solo è tanto brutto quanto lecito :-)

 da solo � tanto brutto quanto lecito :-)
No, il C99 vieta la definizione di funzioni senza tipo di ritorno, per cui
bisogna dimenticarsi dell'"implicit int". D'altronde neanche il C++ lo
supporta. 


 argv
al limite allora:
int main(void)


D'accordissimo.
Anche perché, sinceramente, questa cosa del ritorno implicito è una
feature di cui non ho mai capito il perché. Probabilmente era comodo a
livello di implementazione supporre un valore buono nell'accumulatore
al ritorno - boh!

 al ritorno - boh!
mah... magari semplicemente int era il valore di ritorno implicito delle
funzioni del linguaggio B.

 funzioni del linguaggio B.
per quel poco che so del B, le funzioni non avevano alcun tipo di
ritorno nemmeno nella definizione, e potevano tornare qualcosa oppure
no, di qualsiasi tipo.
Eh beh, qualche passetto avanti con il C lo si è fatto! ;-)

 int main(void)
Dunque (dal basso della mia ignoranza), com'� pi� corretto?
int main(void)
oppure
int main()
?
Enrico

 int main(void)
Questa � una delle due forme (l'altra � quella con gli argomenti)
specificata dagli standard (C89, C99) come valida per main(). In ogni
caso, usare l'una o l'altra, purch� si rispetti il punto fondamentale di
specificare un tipo compatibile con un intero quale tipo di ritorno, �
questione di lana caprina.

Newsgroup: it.comp.lang.c
Titolo: Delucidazioni compito in c

Devo fare un compito in C. Riporto il testo:
"Scrivere un programma ANSI C che acquisisce i coefficienti
 di un polinomio e calcola il valore del polinomio in un certo punto
 (stabilito dall'utente) effettuando un numero di addizioni e
 di moltiplicazioni che è lineare rispetto al grado del polinomio."
Secondo voi l'input e l'output come devono essere? Potreste farmi
degli esempi concreti?
Inoltre come implementereste il tutto in C ?
Grazie in anticipo a chi mi aiutera'.
Q.C

 Inoltre come implementereste il tutto in C ?
Questo dovresti dircelo tu, visto che il compito l'hanno
dato a te.
Comunque il metodo per valutare il polinomio effettuando
un numero di addizioni e moltiplicazioni etc.etc.
si chiama Algoritmo di Horner e lo puoi
trovare con google.
Dopo di che i passi che devi sequire sono i seguenti.
1) Studi il linguaggio C
2) Studi l'algoritmo di Horner
3) Implementi l'algoritmo
4) Se poi hai dei dubbi puoi postare qui il tuo codice
e ti si dice dove hai cannato.
Tieni conto che l'algoritmo di Horner e' facilissimo,
basta un ciclo.
per esempio per calcolare 3.2*x^3+4.1*x^2-3.7*x+11 nel punto x=6.6
si calcola:
(((3.2*6.6)+4.1)*6.6-3.7)*6.6+11
altro esempio: per valutare A*x^2+B*x+C nel punto X,
si valutera'
((A*X)+B)*X+C
partendo ovviamente dalla parentesi interna.
Se non e' chiaro cerca con google.
g.

 Inoltre come implementereste il tutto in C ?
Che vuol dire? l'esercizio devi farlo tu, non noi...
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it
Newsgroup: it.comp.lang.c
Titolo: Internal compiler error

Ciao a tutti.
Oggi, compilando arts (un'applicazione audio per linux),
mi sono apparsi i segg. messaggi d'errore:
.../usr/share/arts-0.2.6 # make
make all-recursive
make[1]: Entering directory `/usr/share/arts-0.2.6'
Making all in src
make[2]: Entering directory `/usr/share/arts-0.2.6/src'
Making all in synthesizer
make[3]: Entering directory `/usr/share/arts-0.2.6/src/synthesizer'
/usr/bin/idl synth.idl
g++ -DHAVE_CONFIG_H -I. -I. -I../.. -I/usr/include -I/opt/kde/include
-I/usr/lib/qt/include -I/usr/X11R6/include  -O2 -Wall -c synth_server.cc
In file included from /usr/include/g++-2.7/defalloc.h:81,
                 from synth.h:12,
                 from synth_impl.h:25,
                 from synth_server.cc:33:
/usr/include/mico/sequence.h:269: Internal compiler error.
make[3]: *** [synth_server.o] Error 1
make[3]: Leaving directory `/usr/share/arts-0.2.6/src/synthesizer'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/usr/share/arts-0.2.6/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/share/arts-0.2.6'
make: *** [all-recursive-am] Error 2
Internal compiler error...
E mo', come mi devo comportare?
Che cosa potrebbe essere?
Ringrazio,
E.
-----------------------------------
"There is none to comfort me
 Mine enemies have heard my trouble
 Leave in my misery
 Enjoy the Darkness"   -  MDB

                  from synth_server.cc:33:
2.7 e' un po' vecchia; la corrente e' egcs 1.1.2 .
prova ad aggiornare il compilatore...
-- 
Maurizio Loreti                      
http://wwwcdf.pd.infn.it/~loreti/mlo.html
Un. of Padova, Dept. of Physics - Padova, Italy          
lor...@padova.infn.it

 prova ad aggiornare il compilatore...
Mmmmh, gia'. In effetti oggi m'ha dato problemi
anche con un altro programma.
Ok, ora mi metto alla ricerca.
Grazie mille,

Newsgroup: it.comp.lang.c
Titolo: VISUALIZZARE C

Salve sto cercando un programma che mi permetta di verede i miei
risultati di programmazione in C su Windows 98.
Mi serve molto per un esame in Ingegneria Informatica per l'esame di
Fondamenti che necessita la conoscenza del C e per esercitarmi devo pur
vedere i miei lavori.
Grazie e prima mi scriverete prima potrň esercitarmi aiuto grazie.....

risultati di programmazione in C su Windows 98.
Fammi capire : cerchi un programma che giudichi quanto sono scritti
bene e sofisticati i tuoi programmi ?
ciao


Salve collega !!! Anch'io sono sulla stessa barca..allora se usi un
compilatore tipo il Borland sotto win devi andare alle specifiche di
proìgetto impostando il progetto come emulazione di MS-DOS, ma in ogni
caso se scrivi un programma, poi lo compili e ci tiri fuori un
eseguibile, quando lo lanci Win dovrebbe eseguirtelo in una finestra,
se vuoi basta che vasi alle proprieta' del file EXE da te creato e (da
avanzate mi pare) spunti le opportube caselle per far siche non rilevi
Windows all'esecuzione.
Oppure puoi anche riavviare il sistema in modaliota' MS-DOS e da li
non dovrresti aver problemi... per l'esame di fondamenti ti consiglio
di usare il compilatore Turbo C della Borland che trovi nel Borland
Museum, e' stato consigliato anche a noi e ha il vantaggio che essendo
"vecchio" e' privo di tutte le complicazioni che hanno compilatori +
recenti e molto adatto all'uso didattico.
Augusto Pucci
Webmaster di Prospektiva On-line
http://go.to/Prospektiva

 Grazie
Figurati
Ciro

 vedere i miei lavori.
Intendi un "compilatore" o cosa?
--
 Ciao, Luca.
 Reply to 
luca....@tiscalinet.it

 >risultati di programmazione in C su Windows 98.





no che mi faccia visualizzare i miei programmi in C
Sei in DOS ? il comando type
ciao

noe quando dice visualizzare iuntende non vedere il codice a
schermo..intende compilare ed eseguire perbenino in un a,biente pulito
non incasinato come una finestra di win


turbo c


ma dove lo trovo puoi darmi l'indirizzo giusto???


http://wwwapp1.borland.com/login/login.exe/menu?redirect=http://community.borland.com/museum
ti devi segnare come nuovo user , ti danno una password per il
login..fai il login dall'indirizzo sovrastante e scarichi turbo C del
1989


non incasinato come una finestra di win
Poteva dirlo subito.
ciao

Newsgroup: it.comp.lang.c
Titolo: codice di ritorno programma in c

Io devo eseguire un programma esterno e dovrei controllare il codice di
ritorno di questo come faccio. Io utilizzo Turbo c++.

 wrote in message
8066ph$61n$2...@fe2.cs.interbusiness.it...

Newsgroup: it.comp.lang.c
Titolo: qsort su matrice

Ciao,
ho una matrice MxN che devo ordinare in base all'indice che è disposto
su di una colonna, non necessariamente la prima.
ho studiato la qsort() della stdlib ma non sono riuscito a
comprenderne il funzionamento su di una matrice:
float **infosys;
...
infosys=malloc(rows * sizeof(float *));
    if(!infosys) printf("\n\tAllocation memory error!!");
    for(r=0;r<rows;r++)    {
        infosys[r]=malloc(cols * sizeof(float));}
    qsort(*infosys,rows,sizeof(float),compare_float);
il risultato è che non mi ordina nulla.
qualcuno può aiutarmi?
grazie
geo

     qsort(*infosys,rows,sizeof(float),compare_float);
Qui stai ordinando la prima riga della matrice. Ma non � questo che 
volevi fare, giusto? Ricorda che *infosys � equivalente a infosys[0].
Quello che devi fare � definire una funzione di confronto tra le righe 
(che andr� semplicemente a confrontare la colonna in questione) e usare 
quella sull'array dei puntatori alle righe.
E.

Ciao,
la funzione che ho usato per il confronto è questa:
int compare_float(const void *a, const void *b)
{
        const float *da = (const float *) a;
        const float *db = (const float *) b;
        return (*da > *db) - (*da < *db);
}
ad onor del vero devo dire che non è farina del mio sacco ma la
sintassi mi è piuttosto chiara, almeno per un array manodimensionale.
Per bi dimensionale mi ci faccio male.
geo

 Per bi dimensionale mi ci faccio male.
Ti mancano parecchie basi. Perch� devi scrivere questo codice? Per 
studio, per lavoro, per hobby?
E.


Per hobby e per studio. Non faccio e non farà il programmatore
professionale, ho un altro impiego che mi piace e che mi basta, nel
temp libero seguo un dottorato di ricerca e in quell'ambito sto
studiando (purtroppo non con la costanza che servirebbe!) il C in
alcuni ambiti specifici delle valutazioni ambientali.
geo

 - Mostra testo citato -
preciso: l'ambito disciplinare non è quello informatico ma proprio
quello dell'estimo ambientale!

 Per hobby e per studio. 
Ok, scusa la domanda... Allora la funzione che ti serve � qualcosa del tipo:
int compare_column; // colonna da confrontare
int compare_row(const void *a, const void *b) {
    const float **row_a = (const float **) a;
    const float **row_b = (const float **) b;
    return row_b[compare_column] - row_a[compare_column];
}
che puoi usare in questo modo:
float **matrix;
matrix=malloc(N_ROWS * sizeof(float*));
int i;
for (i=0;i<N_ROWS;++i)
	matrix[i]=malloc(N_COLUMNS*sizeof(float));
// inserisci i dati in matrix
compare_column=42;
qsort(matrix,N_ROWS,sizeof(float*),compare_row); // ordina la matrice 
rispetto alla colonna 42.
E.

 E.
Grazie!
davvero.

 rispetto alla colonna 42.
io compare_column l'avrei messo come parametro di compare_row().
Giusto per farla rientrante.
Ciao Jack
Newsgroup: it.comp.lang.c
Titolo: array bidimensionali di char...

Spero possiate aiutarmi un'altra volta :-)
vorrei inserire delle stringhe in un array bidimensionale [10][2]
di char... mi aspetto di avere come risultato:
	0  1
0	s  s
1	t  t
2	r  r
3	i  i
4	n  n
5	g  g
6	a  a
7	1  2
8	\0 \0
9
10
visto che nella prima dimensione ho le colonne e nella seconda le righe...
perche' allora il seguente codice non funziona?
#include <stdio.h>
#include <string.h>
int main(void){
	char prova[10][2]={{"a","b"},}; //cosi' inizializzo tuttol 'array
 
	strcpy(prova[0][0],"Denis");
	strcpy(prova[0][1],"Denis2");
 
	printf("Prova[0][0]==%s\n",prova[0][0]);
	printf("Prova[0][1]==%s\n",prova[0][1]);
	return 0;
}
grazie 1000 a tutti
Dade
-- 
Registered Linux User #249141

 }
Luca
-- 
Home: 
http://kronoz.cjb.net
Windows NT: Designed for the Internet. The Internet: Designed for Unix.

 Luca
Denis


>>        return 0;
Luca
-- 
Home: 
http://kronoz.cjb.net
You and me baby ain't nothin' but mammals
So let's do it like they do on the Discovery Channel

Il Wed, 02 Feb 2005 15:58:58 +0000, Kronos ha scritto:
[snip]
grazie ancora kronos, ora le cose sono piu' chiare :)
ciao

Newsgroup: it.comp.lang.c
Titolo: Problema va_arg ....

Salve a tutti....
sapete dirmi se c'è il modo di sapere quanti sono i parametri passati ad una
funzione con numero di parametri variabili ?
Vorrei scrivere una funzione molto simile a printf, per scrivere su un log
file.
Vorrei evitare di dover passare anche una variabile con il numero dei
parametri....
void writeLog(int level, char* msg, ... ) {
    va_list  ap;
    va_start(ap, msg);
    errMsg = va_arg(ap, char *);
    while(errMsg) {                    /* Purtroppo non ritorna null in caso
di fine dei parametri...*/
        printf("Argument is : %s\n", errMsg);
        errMsg = va_arg(ap, char *);
      }
    va_end(ap);
    .......
}
Questo dovrebbe essere il prototipo :
void writeLog(int level, char* msg, ... );
e questo l'utilizzo....
writeLog(LOG_ERR, "Errore n. %d : %s", errN, errDesc);
Ovviamente il numero dei parametri dipende dalla stringa passata come
secondo parametro, come printf.
Buona giornata !!

"Maury" <Maurizio...@Tecnes.net> ha scritto nel messaggio
news:3c5a...@news.cis.it...

Non credo sia possibile

Ora sono riuscito.... è possibile (altrimenti come avrebbero fatto a
scrivere la printf ??? )
Per la verità per riuscire sono andato a sbirciare il sorgente della printf
di Linux...
Il sorgente del file printf.c lo trovate sotto il mio codice....
Spero che serva ad altri... buona giornata !!
N.B.
Non sono sicuro che il mio codice sia ancora totalmente a posto... però
funzia !Devo ancora metterlo a puntino...
void writeLog(int level, char* msg, ... ){
 int   rc;
 va_list  args;
 int   i;
 static char ppbuf[1024];
 if (level >= logLevel) {
  va_start(args, msg);
  i = vsprintf(ppbuf, msg, args);
  printf("%d - %s\n", i, ppbuf);
  va_end(args);
......
  }
Sorgente del file printf.c
#include <linux/kernel.h>
#include <asm/openprom.h>
#include <asm/oplib.h>
static char ppbuf[1024];
void
prom_printf(char *fmt, ...)
{
        va_list args;
        char ch, *bptr;
        int i;
        va_start(args, fmt);
        i = vsprintf(ppbuf, fmt, args);
        bptr = ppbuf;
        while((ch = *(bptr++)) != 0) {
                if(ch == '\n')
                        prom_putchar('\r');
                prom_putchar(ch);
        }
        va_end(args);
        return;
}
"Maury" <Maurizio...@Tecnes.net> wrote in message
news:3c5a...@news.cis.it...


 secondo parametro, come printf.
se e' questo quello che vuoi non ti serve conoscere il numero di parametri
direttamente, usa la funzione vfprintf
#include <stdio.h>
#include <stdarg.h>
void writeLog ( int level,char* msg, ... )
{
  va_list va;
  FILE*f=fopen( "logfile.log","at" );
  if( !f )    return;
  va_start( va,msg );
  vfprintf( f,msg,va );
  fclose( f );
}
ciao
donCiccio
Newsgroup: it.comp.lang.c
Titolo: Problema con passaggio array Dim

Ciao a tutti,
ho un problemino... non so fare una cosuccia:
Ho un main chiamante cosi:
char sStr[500];
char sStrArray[5][500];
   sprintf(sStr,"uno due tre quattro");
   func(sStr,sStrArray[]);
   printf("%s",sStrArray[0]);
   printf("%s",sStrArray[1]);
   ..........................
La mia funzione "func" è cosi:
void fun(char *sStr,char *sStrArray[]);
La funzione Func analizza la mia stringa e mi restituisce dei risultati
nell'array di stringa.
Il compilatore mi da un errore nella chiamata della function.
Sicuramente ho sbagliato qualcosa... ma dove?? :(
Chi mi sa aiutare ??
Grazie mille...
xoooox
--------------------------------
Inviato via 
http://usenet.libero.it

 void fun(char *sStr,char *sStrArray[]);
dichiarala come
void func(char *s, char (*array)[][]);
Saluti

Zero <fiqpgc@_SPAMMER_AL_CONFINO_IN_SIBERIAtin.it> wrote in message
NSUia.68403$i26.2...@news2.tin.it...

Ah, ho dimenticato di dirti che devi specificare la dimensione più a destra:
func(sStr, sStrArray[][500]);
Saluti

 void fun(char *sStr,char *sStrArray[]);
Quindi la funzione va dichiarata come
void fun(char *sStr,char *sStrArray);
Se invece volevi passare alla funzione tutta la matrice allora devi
chiamarla cosě
func(sStr,sStrArray);
e dichiararla cosě
void fun(char *sStr,char (*sStrArray)[500]);
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

 void func(char *s, char (*array)[][]);
E pensi possa funzionare? L'hai provata?


Ciao,
ti volevo ringraziare...
ho risolto tutti i miei problemi con la seconda ipotesi :)
 func(sStr,sStrArray);
 void fun(char *sStr,char (*sStrArray)[500]);
Hai sbagliato una cosa però... la funzione si chiama "fun" e tu stai
chiamando "func" :P
Cmq.. ti ringrazio molto
ciao


 E pensi possa funzionare? L'hai provata?
Effettivamente non funziona. Ho scritto una scempiaggine.
Saluti

 chiamando "func" :P
Ops! :-)


Newsgroup: it.comp.lang.c
Titolo: api cosa sono?

Salve,
qualcuno potrebbe gentilmente spiegarmi cosa sono o meglio come si usano le
cosiddette api (application program interface ).Quante ce ne sono e per fare
che?
Inoltre le cosiddette system calls in ambito unix significano la stessa cosa
concettualmente ?
Grazie a chi vorrà illuminarmi e magari fornirmi qualche riferimento
bibliografico.

bibliografico.
Petzold per cominciare, poi Richter per cose piu`
"a fondo", poi Klutz per le interazioni con la shell,
poi testi specializzati vari se ti interessano MAPI,
TAPI, e via elencando...
Alex

bibliografico.
Qui non ti so dare un aiuto, se escludiamo l'SDK Microsoft...
Ciao!





...

Newsgroup: it.comp.lang.c
Titolo: Esercizio su array!

Devo svolgere questo esercizio:
Dato l’array di N interi (N=8) A = {0,2,2,4,4,6,15,8}, verificare se il 
seguente frammento di codice
trasforma i valori in {1,2,3,4,5,6,7,8}.
Segmento di codice:
for (i=N; i>=0; i--)
if (!(i%2)) A[i] = A[i] - A[(i+1)%N] + A[(i+2)%N];
Sul testo e' scritto che il codice e' corretto, ma io non ne riesco a 
capire il motivo, in particolare:
Il ciclo for viene eseguito 9 volte, e la prima volta lavora con valori 
esterni all'array!
Come fa ad essere giusto?
Grazie a chiunque mi vorra' aiutare!
Francesco.
-- 
Per rispondermi in privato togliere NOSPAM

 Come fa ad essere giusto?
Non lavora con valori esterni. Controlla la condizione dell' if nel caso 
i=8....
Giorgio

Giorgio Pastore ha scritto:

if (!(i%2)) A[i] = A[i] - A[(i+1)%N] + A[(i+2)%N];
Se i=8 A[8] = A[8] - A[1] + A[0];
Quindi dipende dal valore di A[8], che non e' stato assegnato...
Dove sbaglio?


L'array č composto da 8 elementi, quindi N=8.
Ma se N=8 bisognerebbe ciclare da 1 a 8 oppure da 0 a 7.
Sicuro che il ciclo vada da N a 0?
Oppure... sicuro che N valga 8 e non 7 (che sarebbe l'ultimo elemento 
dell'array)?
-- 
Quando noi ignoranti eravamo di piů, tutto era piů bello (A. Celentano).
  ___   _   ___ _  _______   _______ ___
|   \ /_\ | _ \ |/ / _ ) \ / /_   _| __|
| |) / _ \|   / ' <| _ \\ V /  | | | _|
|___/_/ \_\_|_\_|\_\___/ |_|   |_| |___|

 
Ti incollo il testo:
Dato l’array di N interi (N=8) A = {0,2,2,4,4,6,15,8}, quale/i dei 
seguenti frammenti di codice
trasformano i valori in {1,2,3,4,5,6,7,8}:
[a] for (i=N; i>=0; i--)
if (!(i%2)) A[i] = A[i] - A[(i+1)%N] + A[(i+2)%N];
[b] for (i=N; i>=0; i--)
if (!(i%2)) A[i] = A[i] + A[(i+1)%N] - A[(i+2)%N];
[c] for (i=N; i>=-1; i--)
if (i%2) A[i] = A[i] - A[(i+1)%N] + A[(i+2)%N];
[d] for (i=N; i>=-1; i--)
if (i%2) A[i+1] = A[i+1] + A[(i+3)%N] - A[(i+2)%N];
E nella soluzione dice che le risposte esatte sono la [a] e la [d].


 i=8....
Assegna qualcosa ad A[8] che non esiste. Il codice funziona per puro
caso.
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 caso.
Hai ragione. Oggi il risveglio e' stato piu' duro del solito :-) e non 
ho tenuto conto della negazione. Cosi' come e' sembra un errore del 
testo. Probabilmente l' inizializzazione di i andava fatta a N-1 (cosi' 
funziona).
Quello che va notato e'che, dato l'array iniziale,  sono solo le 
componenti di indice pari che vanno modificate. Naturalmente A[8] non e' 
   una locazione legale.
Giorgio

Newsgroup: it.comp.lang.c
Titolo: Cerco Compilatore C/C++

Vorrei downloadare un "modesto" compilatore C/C++ per DOS

Vorrei downloadare un "modesto" compilatore C/C++ per DOS
Mi dicono (non ho esperienza personale in merito) che DJGPP
e' veramente l'unico compilatore C++ gratuito da prendere in
considerazione per DOS, anche se e' tutt'altro che modesto.
Alex
Newsgroup: it.comp.lang.c
Titolo: Le FAQ di it.comp.lang.c

Salve, 
non so se le FAQ di it.comp.lang.c esistano gia', ma credo di no.
Mi rendo conto che scrivere le FAQ di un gruppo che parla di un
linguaggio di programmazione non e' cosi' semplice, anche perche' sono
poche le domande che si ripetono spesso.
Quindi ho pensato di costruire due tipi di "manuali" per cosi' dire.
Uno in cui sono contenute le domande effettivamente piu' frequenti.
Per esempio : 
"Quali sono le risorse di internet che trattano il C ?"
"Quali sono i testi migliori sul C ?"
"Esiste un compilatore C freeware ?"
Queste domande piu' volte si ripetono sul ng, e riunirle in una FAQ
eviterebbe di ripetere le risposte piu' volte.
E in secondo luogo una specie di "libreria" di programmi costruiti per
spiegare il funzionamento di costrutti particolari, il cui meccanismo
e' stato piu' volte chiesto sul ng. (vedi la funzione scanf, o gli
array di puntatori).
Ovviamente entrambi i documenti possono arricchirsi di informazioni
nel tempo, grazie alla collaborazione di piu' persone.
Io credo che possano essere un valido aiuto per chi inizia a
programmare in questo linguaggio e forse anche per chi e' gia' un po'
piu' esperto.
Aspetto le vostre opinioni...
Ciao
Andrea
------------------------------------------------
combatti anche tu il nano scemo :
http://www.geocities.com/Hollywood/Studio/6989
------------------------------------------------

Aspetto le vostre opinioni...
Ciao. A me sembra una buona idea. Sto ricreando le mie pagine su
Geocities e, siccome seguo vari gruppi, mi sono incaricato di stendere
e/o collaborare alle FAQ che metterò in alcune delle pagine appena il
nuovo layout è pronto. Mi piacerebbe aggiungere anche questa e credo
che sarebbe molto interessante per tutti quanti. Ti aiuto volentieri a
lavorarci sopra, se vuoi, e ti propongo di metterla insieme alle altre
nelle mie pagine.
Cordialmente,
Gianni Rondinini, programmer and designer at Pierre s.n.c.
e-mail: mailto:
pie...@mail.asianet.it
homepage: 
http://www.geocities.com/Eureka/Plaza/7153
Red Hat Linux user since 9/25/97
If a train station is where the train stops, what is a work station?

...........................................................
Un ottima iniziativa.
Ciao e grazie per le tue utili iniziative
Saluti
--
____________________________________________________
boccetto    
bocc...@NOSPAMzuzzurello.com
http://www.zuzzurello.com/informazione/boccetto/
 
" Se non avessimo difetti, non proveremmo
  tanto piacere a notare quelli degli altri. "
 
                         La Rochefoucauld
_____________________________________________________
Newsgroup: it.comp.lang.c
Titolo: modificare un array bidimensionale in un'altra funzione

Salve a tutti.
Ho una funzione Pippo
nella quale è definito il seguente array:
char pippo[N][M];
devo modificare il contenuto di questo array bidimensionale
in una funzione Pluto
come dovrà essere il prototipo di Pluto?
ho provato con qualcosa del tipo
Pluto( (char *)&pippo );
ma quando sono in Pluto non riesco ad accedere a, per esempio
pippo[3][5].
Suggerimenti?
Grazie.
Pippo
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 Suggerimenti?
Supponiamo, tanto per fare un esempio, che Pluto() debba inizializzare ogni
elemento della matrice al prodotto dei suoi indici (insomma, costruisce una
tabellina pitagorica):
void Pluto (char * matrice, int xdim, int ydim)
{
    int x, y;
    for (x = 0; x < xdim; x++)
       for (y = 0; y < ydim; y++)
           matrice[y * xdim + x] = x * y;
}
void Pippo (void)
{
   char pippo[N][M];
   Pluto(pippo, N, M);
}
Questo sopra è il metodo tradizionale. Pare (ma personalmente non ci ho mai
provato) che secondo lo standard del 1999 la stessa cosa si possa anche fare
in modo più elegante:
void Pluto (int xdim, int ydim, char matrice [xdim] [ydim])
{
    int x, y;
    for (x = 0; x < xdim; x++)
       for (y = 0; y < ydim; y++)
           matrice[x][y] = x * y;
}
void Pippo (void)
{
   char pippo[N][M];
   Pluto(N, M, pippo);
}
Ma questa seconda implementazione sicuramente non funziona su compilatori
che hanno più di 4 o 5 anni. E non mi stupirei se non funzionasse anche su
parecchi compilatori recentissimi. Ergo, per il momento io m'atterrei a
quella sopra.
--
Cingar
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 quella sopra.
Ciao,
ho provato il secondo metodo da te indicato (perché mi è sembrato il più
rapido)
ed ha funzionato (uso MS Visual Studio 6).
Grazie mille.
Ciao!


 ed ha funzionato (uso MS Visual Studio 6).
Meglio così.
D'altra parte, se dovessi in seguito portare il programma su un
compilatore più vecchio, dovrebbe darti un errore di sintassi, quindi non
c'è pericolo di introdurre un baco senza accorgersene.
--
Cingar

Newsgroup: it.comp.lang.c
Titolo: Informazioni su sistemi operativi

Salve a tutti.
    Volevo chiedere se qualcuno poteva dirmi dove reperire in rete
informazioni sulla programmazione di sistemi operativi in linguaggio C.
Ringraziando naticipatamente ,
    Andrea.
P.S.: Rispondete anche via E-mail ( ci sono alcuni problemi nella
ricezione della news.)



...

Devi specificare quale o quali sistemi operativi perchè ce ne sono tanti in
commercio.
Ciao, Giuseppe
PS. Se sei abbonato con IOL per risolvere il problema delle news prova a
utilizzare il news server di mattina o di primo pomeriggio

Newsgroup: it.comp.lang.c
Titolo: Aiuto per semantica

Salve,
non capisco perche' il seguente codice mi da gli output che ottengo:
int main() {
 char scelta;
 int punti = 0;
 while (toupper(scelta) !=  'A') {
  printf ("%s\n", "Dentro il ciclo");
  scanf("%c", &scelta);
  if (toupper(scelta) ==  'A')
   break;
  else
   scanf("%d", &punti);
  printf ("%c %d\n", scelta, punti);
 }
 return 0;
}
Dentro il ciclo
e6   <-- Input
e 6
Dentro il ciclo
f2 <-- Input
 6
Dentro il ciclo
f 2
Dentro il ciclo
x3 <-- Input
 2
Dentro il ciclo
x 3
Dentro il ciclo
u89 <-- Input
 3
Dentro il ciclo
u 89
Dentro il ciclo
a3 <-- Input
 89
Dentro il ciclo
Esce.
Non capisco perche' stampa 2 volte "Dentro il ciclo" ne perche' stampa
caratteri errati.
Io voglio che stampi solo quello che inserisco, che stampi una volta "Dentro
il ciclo" e che quando inserisco 'a' esca senza stampare di nuovo "Dentro il
ciclo".
Grazie

 caratteri errati.
Prima di tutto la variabile scelta non e` inizializzata prima del
confronto e questo e` male.
Il tuo problema, tuttavia, deriva dal fatto che il buffer e` "sporco".
Dopo la conversione dell'intero (punti) rimane un newline che viene
letto dalla scanf (scelta) al ciclo successivo. Devi avere cura di
svuotare lo stdin (no, con fflush() non si puo`) prima di iniziare il
ciclo successivo.
/* non compilato */
while(1) {
        printf("Dentro il ciclo\n");
        scanf("%c", &scelta);
        if (toupper(scelta) == 'A')
                break;
        scan("%d", &punti);
        /* Pulizia di stdin */
        while(getchar() != '\n')
                /* nothing */;
        printf("%c %d\n", scelta, punti);
}
In questi casi il consiglio e` di leggere un'intera linea di input e
fare il parsing del buffer: in questo modo lo stdin e` sempre in una
condizione nota.
Luca
-- 
Home: 
http://kronoz.cjb.net
"La vita potrebbe non avere alcun significato. Oppure, ancora peggio,
 potrebbe averne uno che disapprovo". -- Ashleigh Brilliant

 Il tuo problema, tuttavia, deriva dal fatto che il buffer e` "sporco".
Immaginavo.
Cmq il getchar fino al '\n' ha risolto il problema grazie.
Newsgroup: it.comp.lang.c
Titolo: Prodotto matrici

Salve ho urgentemente bisogno di un programma che calcola il prodotto tra
due matrici.
Se potete mandarmelo ve ne sarei grato
--
Grazie infinite
RicK

 wrote in message
news:R493a.117970$ZE.32...@twister2.libero.it...

Si, nient'altro? Come lo vuoi, tagliato sottile?
Mi spiace ma credo che l'obiettivo di questo NG non sia 'far scrivere codice
a terzi per risparmiare tempo' ma 'discutere dei problemi che si incontrano
*nello* scrivere del codice e confrontarsi su di essi'.
Comincia quindi a scrivere qualcosa e *poi* posta pure sul NG le domande
riguardanti le difficoltà che incontri.
Ciao e buon lavoro,
 -----= Posted via Newsfeed.Com, Uncensored Usenet News =-----
http://www.newsfeed.com
 - The #1 Newsgroup Service in the World!
-----== 100,000 Groups! - 19 Servers! - Unlimited Download! =-----
 

 Si, nient'altro? Come lo vuoi, tagliato sottile?
E se possibile, vicino all'osso... Grazie  :-)
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
Newsgroup: it.comp.lang.c
Titolo: di nuovo sul passaggio di matrici

ancora sulla mia domanda di qualche giorno fa, riguardo al creare una
funzione che
accetti come parametro una matrice di qualsiasi dimensioni:
le soluzioni che mi avete dato sono valide (grazie!), ma abbastanza
macchinose,
perciò volevo un parere riguardo questo spezzone di codice:
void print_mat(int rows, int cols, int m[rows][cols]){
    /* ... */
}
int main(){
    int m[2][3] = { {1, 2, 3}, {4, 5, 6} };
    print_mat(2, 3, m);
    return 0;
}
$ gcc -Wall prova.c -o prova
$
Compila, funziona ed è pulita e simile alla sintassi di linguaggi a
più alto livello.
La domanda è: è codice C standard e portabile? O funziona solo su gcc?
(non ho altri compilatori a disposizione per provare). Pareri?
Grazie

 La domanda è: è codice C standard e portabile? O funziona solo su gcc?
e' standard C99 (vd. "variable length array" - VLA);
ovviamente non funzionerebbe con i compilatori rimasti allo standard C90
-- 
Cybertoldo
Per rispondermi via email, sostituisci moc.liamg con 
gmail.com