mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c
Titolo: Compilatore Borland C++

Ciao a tutti, sono alle prime armi con il c ed ho un piccolo problema con il
compilatore in oggetto.
Quando compilo un semplice programma, per esempio ciao.c (chi e' che non lo
conosce???.....) l'output, o meglio la finestra dos scompare
immediatamente,senza farmi vedere la scritta ciao.
Come posso dire al compilatore di bloccarsi dopo aver eseguito la printf ?
Grazie in anticipo,ciao  a tutti

 ha scritto nel messaggio
news:CnGq8.114633$1S3.3...@twister1.libero.it...

#include<stdio.h>
int main()
{
char car;
.....
....
...
scanf("\n%c",&car);
return 0;
}

 Come posso dire al compilatore di bloccarsi dopo aver eseguito la printf ?
In alternativa alla soluzione suggerita, una volta che rientri nell'IDE
premendo ALT+F5 puoi visualizzare il risultato della tua printf.

premendo ALT+F5 puoi visualizzare il risultato della tua printf.
a parte che lui penso utilizzi il compilatore da riga di
comando...ad ogni modo la combinazione ALT+F5 faceva parte
dei vecchi IDE Borland (Turbo Pascal, C, C++...poi boh) che
se usi ancora ti consiglio di non utilizzare più (beh tranne
Turbo Pascal :)
--
Lawrence Oluyede
rhy...@myself.com

 se usi ancora ti consiglio di non utilizzare piů (beh tranne


 ha scritto nel messaggio
news:AAUq8.117773$1S3.3...@twister1.libero.it...


 ha scritto nel messaggio
news:CnGq8.114633$1S3.3...@twister1.libero.it...

#include<conio.h>
#include<stdio.h>
int main()
{
      printf("ciao");
      getch();
      return 0;
}

 ed il programma si blocca poi riparte appena premi invio ok
fflush(NULL) esegue un flush di  tutti gli stream aperti in *scrittura*.
Lo  stdin  non viene  toccato. Alcuni  compilatori  consentono di  usare
fflush(stdin) per  svuotare il  buffer, ma  questo comportamento  non e`
standard.
Se si  sa per  certo che  nel buffer  e` rimasto  qualcosa si  puo` fare
cosi`:
while(getchar() != '\n')
      ;
getchar();
Altrimenti (se il programma stampa senza richiedere dati oppure se tutti
i dati vengono letti) basta un semplice getchar();
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
Non capisco tutta questa eccitazione per il Multitasking: 
io sono anni che leggo in bagno.
Newsgroup: it.comp.lang.c
Titolo: Proposta NG free.it.linux.lang.c

Da poco ho presentato la proposta per la gerarchia 
free.it
 per questo
newsgroup , se volete veramente che questo NG esista entrate su
free.it.gestione e votate!



per quale motivo frammentare il traffico?
--
Rhymes (
rhymes_...@myself.com
)
http://www26.brinkster.com/rhymes
" ride or die "

 per quale motivo frammentare il traffico?
Senza contare il nome scelto: il C (inteso come linguaggio) sotto Linux
è forse differente da quello sotto altre piattaforme?
Ciao,
 Emmanuele.
-- 
Emmanuele Bassi (Zefram)           [ 
http://www.radiance.ods.org/~zefram
 ]
GnuPG Key fingerprint = 4DD0 C90D 4070 F071 5738  08BD 8ECC DB8F A432 0FF4


come se non bastassero i due commenti sopra, alcuni server (ad esempio
news.unibo, quello che uso io) la gerarchia free.* non la vedono...
Adieu,
-- 
Lestat de Lioncourt  -- a.k.a --  Ciro Mattia Gonano
 Undergraduate student in Computer Science at University of Bologna
 IHGGer #1049   <=>  ICQ#: 52631406   <=>   URL: 
http://www.CS.UniBO.It/~gonano
 Debian admin at 
Students.CS.UniBO.It
 <=> look at headers for my JabberID & GPG

Newsgroup: it.comp.lang.c
Titolo: Gestione cartelle

ciao a tutti.
Potreste indicarmi l'istruzione per copiare una cartella (con tutto il suo
contenuto) da un disco all'altro (es. da c: a d:)?
Grazie, ciao
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 contenuto) da un disco all'altro (es. da c: a d:)?
È dipendente dal sistema operativo.
Chiedi su it.comp.programmare.win32
Ciao,
 Emmanuele.
-- 
Emmanuele Bassi (Zefram)                 [ 
http://www.emmanuelebassi.net
 ]
GnuPG Key fingerprint = 4DD0 C90D 4070 F071 5738  08BD 8ECC DB8F A432 0FF4

Ok,Grazie


Newsgroup: it.comp.lang.c
Titolo: mysql.h API C

Salve, io uso Ubuntu ed ho installato mysql dai pacchetti del gestore,
ora dovrei creare un'applicazione in C per il database che ho creato
ma non trovo il file mysql.h che mi serve per usare le API per
l'applicazione...
Qualcuno può aiutarmi??


Scusate ma ho già risolto dovevo installare il pacchetto
libmysqlclient15-dev.
Grazie
Newsgroup: it.comp.lang.c
Titolo: ftell ?

Apro un exe con due fopen : uno in modalità binaria,l'altro in modalità
testo.
La ftell dovrebbe restituire un long che da la posizione corrente nel
file espressa in byte dall'inizio del file....mi restituisce 2 valori
diversi,sapete dirmi il motivo?
scrivo sotto il codice incriminato :
fs=fopen(as,"rb");
 fd=fopen(as,"r");
fseek(fs,183000,0);
    pos=ftell(fs);   //pos=184381
fseek(fd,pos,0);
pos=ftell(fd);     //pos=184381
pos=ftell(fd);
 fscanf(fd,"%dx",&numfil); //leggerà il valore 1
    pos=ftell(fd);    //pos=187968
ora dovrei passare nuovamente la posizione a fs ma ho una differenza di
di circa 3587 (mi sarei aspettato un valore pari a 184383 invece che
187968.)
Mi sto impazzendo.Ancor + strano è il fatto che a volte il programma
sembra andare bene.

 diversi,sapete dirmi il motivo?
I file EXE sono file binari e vanno aperti in modalita` binaria. Inoltre
fseek/fteel funzionano in maniera affidabile  sui file di testo solo sui
sistemi POSIX  (quindi non  su win). Questo  perche` in  modalita` testo
alcune  sequenze  di  caratteri  hanno un  significato  particolare:  ad
esempio (sempre su win) '\r\n' viene letto come '\n'.
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
"La teoria e` quando sappiamo come funzionano le cose ma non funzionano.
 La pratica e` quando le cose funzionano ma non sappiamo perche`.
 Abbiamo unito la teoria e la pratica: le cose non funzionano piu` e non
 sappiamo il perche`." -- A. Einstein
Newsgroup: it.comp.lang.c
Titolo: uso memoria

Salve, avrei bisogno di un aiuto, anche se questo forse non
è il ng giusto.
Dovrei stabilire quale sia il consumo massimo (..di picco)
di memoria di un programma; diciamo che dispongo anche del
codice sorgente per cui posso inserire istruzioni (se ne
esistono), ma solo se non si tratta di spulciarlo tutto
(sono vari file,  lunghi e complicati).
C'è una soluzione?
Premetto che non posso usare il monitor di sistema di
windows, il programma a volte termina in millisecondi oppure
occupa poco per un po' e poi ha un picco velocissimo.
Se però esistono programmini che possono fare questo
andrebbero benissimo.
Grazie mille
marco

 andrebbero benissimo.
Prova a spulciare 
www.sysinternals.com
HTH
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 C'? una soluzione?
Metodo home-made:
static unsigned long mem;
void *my_malloc(size_t size) {
        void *p;
        p = malloc(size);
        if (p)
                mem += size;
        return p;
}
void *my_calloc(size_t n, size_t s) {
        void *p;
        p = my_malloc(s * n);
        if (p)
                memset(p, 0, s * n);
        return p;
}
#define malloc(s) my_malloc((s))
#define calloc(n, s) my_calloc((n), (s))
Le define  devono essere in ogni  file sorgente (o meglio  in un header,
incluso per  ultimo). Per sapere quanta  memoria e` stata  utilizzata ti
basta stampare la variabile mem alla fine del programma.
Ah, nel conteggio  non rientrano le riallocazioni  fatte con realloc. Si
potrebbe fare  qualcosa anche  in questo  caso, ma  sarebbe un  po' piu`
complesso.
Kronos
-- 
Home: 
http://kronoz.cjb.net
It can't rain forever,
but you can die before seeing the sun again.


Grazie mille per la risposta, questa idea mi viene molto
utile per uno dei programmi.
L'altro, perň, usa memoria (a volte tanta!) senza malloc..
piů che altro a causa di funzioni ricorsive (che allocano
variabili); c'č un modo anche per monitorare questa memoria?
Grazie ancora,
ciao
m


Vado, grazie
m

 variabili); c'? un modo anche per monitorare questa memoria?
Non senze editare tutte le funzioni. Magari c'e` qualche analizzatore di
codice che puo` farlo.
Kronos
-- 
Home: 
http://kronoz.cjb.net
La differenza fra l'intelligenza e la stupidita`?
All'intelligenza c'e` un limite.


Allora mi sa che lo cercherò.. se non posso misurare questa
memoria non posso fare confronti tra gli algoritmi.
Grazie ancora,
ciao
m

 Grazie mille, spero di riuscire ad usarlo.
In effetti c'e` un bug :))
struct mem_block {
        size_t size;
};
void *my_malloc(size_t s) {
        struct mem_block *b;
        b = malloc(s + sizeof(struct mem_block));
        b->size = s;
        ....
        return b + 1;
}
void free(void *p) {
        struct mem_block *b = p;
 
        b--;
        mem_now -= b->size;
        free(b);
}
Kronos
-- 
Home: 
http://kronoz.cjb.net
Se non puoi convincerli, confondili.
Newsgroup: it.comp.lang.c
Titolo: Metrowerks Codewarrior Pro 4

Che ne pensate di questo compilatore?
Io lo uso e sono molto contento, ma non avendo una gran esperienza non saprei confrontarlo con
altri.
Che ne pensate?
Saluti
Christian

 ha scritto nel messaggio
news:3A0EB79D...@yahoo.com...


win 98

Newsgroup: it.comp.lang.c
Titolo: Aggiornare direttamente indirizzo puntatore

Salve a tutti, 
ho un piccolo problema riguardante l'aggiornamento degli indirizzi
contenuti nei puntatori, qualcuno puň darmi un chiarimento? 
Se ne ha voglia ovviamente :-)
In pratica ho definito un tipo puntatore ad una struttura
typedef struct record *puntatore;
typedef puntatore nome;
struct record {
 tipoA campo1;
 tipoB campo2;
 };
e definisco una funzione che ha il compito di inizializzare il puntatore
in modo da permettermi di eseguire dei controlli successivamente
void funzione (nome *n)
{
 (*n)= NULL;
}
Se non ho capito male definisco come argomento della funzione un puntatore
ad un puntatore, cioč:
 *n[indirizzo_n]--->n[indirizzo_record]--->record[]
con l'istruzione (*n)= NULL ottengo che il l'indirizzo contenuto dal
puntatore n venga aggiornato con il valore NULL.
Perchč invece non riesco ad aggiornare direttamente il contenuto di n?
ad esempio in questo modo?
void funzione (nome n)
{
 n= NULL;
}
Grazie infinite per il tempo dedicatomi.
Carlo.
 
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 }
facile!
perchč quando chiami una funzione lui crea una nuova variabile n, di 
tipo nome, copiandoci dentro quello che gli passi, quando gli assegni il 
valore NULL lui lo assegna a questa variabile copia, ma quando esci 
dalla funzione cancella la variabile copia e ritorna alla tua varibile n 
di prima (che di tutto questo non ha subito niente)!
ora scappo a mangiare, spero di non aver scritto cretinate per la 
fretta! ciao!
Newsgroup: it.comp.lang.c
Titolo: Prodotto matrice matrice

Grazie Cingar x l'aiuto di prima...ma ora ho un'altro problema  :)))
ecco si tratta del prodotto fra 2 matrici...e mi da lo stesso problema di 
prima. Ti ringrazio in anticipo x l'iuto..
#include <stdio.h>
#include <stdlib.h>
void prodotto3(int a[][100], int b[][100], int m, int n, int p, int **c)
{
    int i, j, k;
    for(i=0; i<m;i++)
    {
        for(j=0; j<p; j++)
        {
            c[i][j]= 0;
            for(k =0; k<n; k++)
            {
                c[i][j] = c[i][j] + a[i][k]*b[k][j];
            }
        }
    }
}
main()
{
    int a[100][100];
    int b[100][100];
    int c[100][100];
    int i, m, n, x, y, p, j, totale;
    printf("Inserisci il numero delle righe e colonne del primo Arrey\n");
    scanf("%d %d", &m, &n);
    printf("Inserisci il numero colonne del secondo Arrey\n");
    scanf("%d", &p);
    printf("Carica le righe del primo Array\n");
    for(i=0;i<m;i++)
  {
      printf("riga numero %d\n", i);
      for(j=0; j<n; j++)
      {
      scanf("%d", &x);
      a[i][j]= x;
      }
  }
  printf("Carica le righe del secondo Array\n");
    for(i=0;i<n;i++)
  {
      printf("riga numero %d\n", i);
      for(j=0; j<p; j++)
      {
      scanf("%d", &x);
      b[i][j]= x;
      }
  }
 prodotto3(a, b, m, n, p, c);
 printf("Array risultatnte:\n");
 for(i=0;i<m;i++)
  {
     for(j=0; j<p; j++)
      {
      printf("c[%d][%d] = %d", i, p, c[i][p]);
      }
  }
 system("PAUSE");
}

 ... int **c
No buono!
--
Cingar
-- 
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: aiuto: DJGPP

Salve a tutti sono Fr@golone,
ho cominciato da poco gli studi del linguaggio C ed utilizzo il compilatore
DJGPP.
Quando mando in esecuzione il programma in C ho il passaggio dalla schermata
del RHIDE a quella de DOS, faccio gli input, viene eseguita l'operazione e
poi passa immediatamente, da capo, alla schermata del RHIDE e per poter
vedere i risultati devo premere ALT + F5.
Come posso fare a bloccare la schermata del DOS di modo che possa vedere i
risultati e poi andare alla schermata del RHIDE.
Un grazie anticipato a tutto il NG.
rol...@freemail.it



basta ge infili alla fine del programma un
getc(stdin)
o un 
getch()          [devi #includere  conio.h]
cosi' aspetta l'invio
ciao Bonf


Non è più semplice lanciare il programma da una shell del DOS?
File->Dos Shell (ALT+F+D)
Ciao Luciano

>


 
La versione scema delle curses di Unix
E' una serie di funzioni e costanti che hanno a che fare con l'input e
l'output diretto sulla "console" MSDOS, NON usa il file system.
ci trovi l'input diretto da tastiera e l'output diretto sul video il
settaggio dei colori e altre cose di questo genere.
Era tipico dei compilatori borland e forse microsoft per dos
Marco


Nell' esempio mi riferivo a getch()
in conio ci sono molte funizoni relative all'io che pero'
non sono standard,per sapere quali basta leggersi il file .h
Bonf
Newsgroup: it.comp.lang.c
Titolo: scrittura temporizzata

perche' questo programmino invecedi scrivere un asterisco dopo l'altro 
lentamente, non scrive niente?
e come posso fare per risolvere?
------------
#include <stdio.h>
#include <time.h>
int main() {
   clock_t tempo;
   while(1) {
     printf("*");
     tempo = clock();
     while(clock() < (tempo + 1000000))
       ;
   }
   return 0;
}
-------------
se invece di scrivere "*", scrivo "*\n" pero' funziona normalmente
eppure un modo ci deve essere, visto che, per dire, una riga in bash tipo:
$ while true; do echo -n "*"; sleep 1 ;done
funziona normalmente

 lentamente, non scrive niente?
Perch� lo standard I/O del C � line-buffered, quindi il sistema bufferizza
i caratteri che scrivi e li "flusha" al primo new-line. Per fare ci� che
vuoi fare � sempre meglio usare funzioni dipendenti dal sistema operativo
e che fanno accesso diretto all'hardware, bypassando l'I/O standard.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 l'I/O standard.
Non basta un semplice setvbuf?
http://www.opengroup.org/onlinepubs/009695399/functions/setvbuf.html
Ciao  Manlio

 
http://www.opengroup.org/onlinepubs/009695399/functions/setvbuf.html
in pratica impostando il buffer a un byte?
e' possibile farlo anche (in linux) da shell?

 e' possibile farlo anche (in linux) da shell?
No, perchè il buffering è associato al singolo stream C che crei, ed il 
valore di default non viene prelevato a runtime (come ad esempio da una 
variabile di ambiente) - almeno per quanto ne so.
Ciao  Manlio

 e come posso fare per risolvere?
#include <stdio.h>
#include <unistd.h>
#include <time.h>
int main() {
   clock_t tempo;
   while(1) {
     write(STDOUT_FILENO,"*",1);


 e che fanno accesso diretto all'hardware, bypassando l'I/O standard.
??? esistono funzioni C standard per l'input/output non bufferizzato.


Si,
setvbuf e setbuf (gia' menzionate da Manlio piu' su') sono standard
ISO C90.
In questo caso, basterebbe persiono un fflush().
Comunque in genere, se si vuole essere sicuri al 100% che cio' che
appare sullo schermo sia cio' che si vuole, come dice Andrea, e'
meglio usare delle routine piu' vicine all'hardware, o per meglio
dire, piu' vicine ai driver di sistema che gestiscono l'input/output
da console.
In questo caso per esempio, se su Linux, puoi usare la libreria
ncurses.

 Si,
La mia era una affermazione non una domanda.

 }
perfetto, funziona!
e sivvede che "write" segue per scrivere una strada diversa... e
scavalca il buffer
grazie e ciao

 da console.
Leggendo "più vicine all'hardware" e "accesso diretto" e "bypassando 
l'I/O standard" mi sono subito venute in mente conio e gli infami 
trucchetti che si usavano ai tempi del DOS. Inutile parlarne male. 
Mi vengono i brividi.
Se però con "più vicine all'hardware" intendi cose come lseek, read 
e write (che sono standard C) o PDcurses (che sono in parte 
compatibili con le ncurses) od anche le ncurses stesse (che sono 
portabili anche su Windows) allora non ci sono problemi. 

 [...]
Ciao  Manlio
Newsgroup: it.comp.lang.c
Titolo: fopen e blocco dei file

Ho un bel problemino. Sto realizzando una applicazione client server.
Il mio intento è quello di voler far accedere ad un certo file residente sul
server un client per volta.
Il problema è che ogni volta che il server effettua una fopen(...) su quel
determinato file, gli viene assegnato un descrittore diverso , per cui non
posso effettuare una flock(...) , perchè non bloccherei nulla. Sicchè se
prima un client apre sul server "pippo.dat" anche un secondo client può
aprirlo , perchè il s.o. glielo permette utilizzando un nuovo descrittore di
file .Come potrei risolvere il problema,quantomeno garantendo la sola
possibilità di andare in lettura su un file già aperto  ?
Grazie per l'attenzione.
Tony

 nulla. 
man flock
<quote>
A file is locked (i.e., the inode), not the file  descriptor.
</quote>
flock non e` funzione standard, non e` IT in questo gruppo.
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
Non sempre quello che viene dopo e` progresso.
Alessandro Manzoni

Newsgroup: it.comp.lang.c
Titolo: Differenze calloc e malloc

Ciao a tutti vorrei chiedere un quesito riguardo le differenze tra queste
due funzioni; supponiamo di dichiarare un puntatore ad interi
int *B;
mediante la chiamata
B = (int*)malloc(DIM*sizeof(int));
creo una variabile di interi di dimensione pari DIM Byte, giusto? Quindi B
sarà un vettore di interi di dimensione DIM?
Ora consideriamo la chiamata
B = (int*)calloc(DIM, sizeof(int));
in questo modo creo un vettore di interi di DIM elementi di dimensione 1
byte, giusto?
Volevo sapere se le due espressioni sono equivalenti e nel caso lo fossero
se è indifferente usare una o l'altra notazione. Grazie Maurizio



La differenza tra malloc e calloc è che la seconda setta la memoria
allocata a 0.
Nota: DIM*sizeof(int) non è uguale a DIM.. sulla mia architettura a 32bit
un int occupa 4 byte; probabilmente anche sulla tua.
PS. Il cast su malloc è superfluo,se #includi <stdlib.h> non avrai né
warnings né segnalazioni
Ciao
Matic

 un int occupa 4 byte; probabilmente anche sulla tua.
Si ho riletto ed ho scritto male; volevo dire che la dimensione sarà DIM
volte la dimensione di un int, giusto?
Ciao Maurizio

 memset(p, 0, sizeof(int));
cosi' e' giusto ...
cmq se il promo argomento vuole l'indirizzo all'area da azzerare e tu passi &p 
stai passando il puntatore al puntatore p ed alla fine ti ritroveresti con un 
puntatore nullo, che se usato porta a dei segfault, ed in piu' avresti memory 
leeck per aver perso un'area di memoria non liberata.
ciao

 due funzioni; supponiamo di dichiarare un puntatore ad interi
entrambe le funzioni restituiscono un puntatore all'area di memoria 
allocata (chiamarla vettore mi sembra una forzatura)...
la malloc non inizializza lo spazio allocato, la calloc lo inizializza 
con una serie di zeri...
Ciao

 int *B;
scusa non avevo visto che ti avevano già risposto

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

prova

 prova
Sai che esiste it.test per fare prove?
Ciao
Newsgroup: it.comp.lang.c
Titolo: Estrarre del testo da una stringa.

Un saluto a tutto in NG,
spero che qualcuno mi posso aiutare :).
Ho una variabile definita come stringa che contiene ad esempio:
"
http://www.prova.it/saluti/ciao#Prova
"
Vorrei estrarre da esso la parola che viene dopo il # quindi in questo caso 
vorrei ottenere "Prova".
Come posso fare?
Un grazie a tutti per l'aiuto ;)
Ciao. 


Guarda le funzioni strchr() e strrchr(). Ritornano la posizione di un
carattere in una stringa.

 carattere in una stringa.
Ti ringrazio :)

Newsgroup: it.comp.lang.c
Titolo: variabili di ambiente

Ciao a tutti, ho bisogno di un aiuto: ho perso il mio prezioso elenco delle
variabili di ambiente che utilizzo in ambiente linux/unix con compilatore
Gnu C e non mi è facile recuperare questa documentazione a breve.
Qualcuno può aiutarmi ed eventualmente indicarmi dove reperirla?
Gazie.
Davide

 Qualcuno puo` aiutarmi ed eventualmente indicarmi dove reperirla?
Nel pacchetto di gcc sono comprese sia le manpages che infopages, cerca
li` (man gcc, info gcc)
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
La differenza fra l'intelligenza e la stupidita`?
All'intelligenza c'e` un limite.

Newsgroup: it.comp.lang.c
Titolo: [Forse OT] Compilatori

Qualcuno mi potrebbe consigliare un compilatore per win decente e
possibilmente gratis?
Con compilatore intendo oltre al programma in se stesso anche qualcosa con
un minimo di grafica e se ci fossero, ma mi posso accontentare, anche uno
straccio di help.
Ho chiesto troppo?
Spero di no.
Spero inoltre di non essere ot e di non avere fatto una domanda da faq
(anche perchè non ho trovato le faq)
--
Manny Calavera
Antispam: CAVA²



Te ne indico 3 (al prezzo di 2?)
LCC-Win32 (fino a un paio di giorni fa il sito aveva qualche problema,
oggi non so... c'e' anche comp.compilers.lcc)
http://www.cs.virginia.edu/~lcc-win32/
Dev C++ (compila usando il mingw, cioe' il gcc per windows)
http://non.lo.so.cercalo.con.google
Open Watcom (hanno rilasciato il Watcom C++ come open source)
http://www.openwatcom.org/
Luca
Newsgroup: it.comp.lang.c
Titolo: Questione sugli array

Ciao a tutti, vorrei sapere se è possibile dichiarare gli elementi di un
array mediante un intervallo ; mi spiego meglio, avrei bisogno di mettere in
un array i numeri da 0 a 9, c'è un modo per dire al compilatore di
includere come elementi dell'array i numeri da 0 a 9 e non stare a scrivere
:
int array[8] = {1,2,3,4,5,6,7,8,9} ?
Si può fare lo stesso con le lettere?
Grazie.
Alex

 int array[8] = {1,2,3,4,5,6,7,8,9} ?
Non nelle dichiarazioni.
Ivan Molella

 un array i numeri da 0 a 9, c'è un modo per dire al compilatore di
devi utilizzare un ciclo per inizializzarlo, ovviamente dopo averlo
dichiarato:
.......
int array[8],i;
.....
for (i=1;i<=9;i++)
   array[i]=i;
ciao
Marco
--
Marco Coppo
University Of Sheffield
FAQ del gruppo:
http://www.programmazione.it/linguaggi/c/itcomplangc.htm

int array[8] = {1,2,3,4,5,6,7,8,9} ?
Bhe non lo puoi fare in dichiarazione, ma ti basta inizializzarlo con
un ciclo dipendente da i che aumenta fino a 9 e ilcui valore - 1 viene
atribuito alla posizione i
una roba del tipo:
for (i=0;i<=8;i++)
array[i]=(i+1);
riguarda un po' gli indici ma cosi' dovrebbe funzionare..per le
lettere idem, basta che usi il riferimento numerico convertendolo in
ASCII carattere
Augusto Pucci
Webmaster di Prospektiva On-line
http://go.to/Prospektiva
Newsgroup: it.comp.lang.c
Titolo: [PSP] Untold Legends

C'è qualcuno che ha il gioco in subject e vorrebbe giocarlo in
modalità multiplayer? :)
Non è un giocone però è abbastanza divertente :)
XBoxLive TAG: Criceto
MarioKartDS friend's code: 528342 - 062642


wrote:

Ops ho sbagliato newsgroup :( scusatemiiii
Newsgroup: it.comp.lang.c
Titolo: mp3 to Wav

Salve a tutti,
ho questo piccolo ( grande ) problema,
mi trovo a dover trasformare un file mp3 in wav,
lavoro con un sistema operativo RealTime (RTKernel),
non ho a disposizione quindi Api di windows,
solo qualche funzione del vecchio compilatore Borland.
Mi piacerebbe trovare un qualcosa di "semplice",
da includere nel mio progetto,
e con semplice intendo l'algoritmo di codifica in chiaro,
in un file c; qualcuno ha mai fatto nulla del genere ???
San Google non mi ha aiutato...
provateci voi.....
Grazie
Byez
Airpalaz
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 San Google non mi ha aiutato...
si vede che hai formulato male la preghiera.
ho provato io e i primi 5 risultati sono promettenti...
hint: "C mp3 codec"
farei anche un giro a vedere le librerie di linux per gli mp3...
Ciao Jack
-- 
http://motoko.dyndns.org

Newsgroup: it.comp.lang.c
Titolo: Quali funzioni per fare un programma in windows?

Ciao a tutti, ho quasi ultimato un semplice
programma che simula (per cosě dire) una
slot machine... solo che mi rendo conto che
sul DOS sia veramente brutto da vedere...
Mi sapreste dire se č facile "convertire" un tal
programma in modo che giri in una finestra di
windows con tanto di pulsanti menů, etc etc..?
In caso contrario quali sono le funzioni piů immediate
per gestire piccole immagini su dos?
grazie mille,
Blob(colazione) 

per gestire piccole immagini su dos?
Dipende strettamente dal compilatore che utilizzi.
In ogni caso, considera che sotto Windows la possibilità di gestire
direttamente la grafica è molto più limitata rispetto al vecchio DOS.

La programmazione Windows in C sfrutta le API del sistema operativo.
Per farti un'idea della complessità del problema, ti consiglio questi
tutorial:
http://www.winprog.org/tutorial/
http://www.manuali.it/manuali-guide/Informatica-e-Internet/Programmazione/Win32/Introduzione-alle-API-Win32/851.htm
Sempre su 
www.manuali.it
 c'è una sezione dedicata alla programmazione
in Windows, forse ti interesserà visitarla.
Comunque, per coloro che sviluppano per la prima volta software con
interfaccia grafica, io consiglierei (ahime) il Visual Basic che,
secondo me, è uno dei linguaggi più rapidi e sbrigativi per questo
scopo.


Se si cerca l'immediatezza anche a scapito di altri aspetti,
allora, piuttosto che usare il Visual Basic, imho e' meglio usare il
vecchio Borland C++ Builder (5 Pro), che unisce un meccanismo per la creazione
di finestre, bottoni etc. abbastanza simile al VisualBasic, e molto
immediato da usare, al fatto che almeno si sta programmando in C/C++....
ciao,
g.

[...]imho e' meglio usare il vecchio Borland C++ Builder (5 Pro)
Concordo al 100%.

per gestire piccole immagini su dos?
Forse non e' immediato, ma certamente e' completissimo:
http://alleg.sourceforge.net/

In effetti anche il Borland C++ Builder è un'ottima soluzione.
Newsgroup: it.comp.lang.c
Titolo: Chi mi spiega CASE è SWITCH?

... e come si usa ?
Grazie a tutti  .
Ciao :-) Roberto

Prova ad essere chiaro, ma se non capisci dimmelo pure che te lo rispiego.
Praticamente l'istruzione SWITCH è come un "grande" IF, nel senso che puoi
controllare più condizioni chiudendole però in un "ciclo". Provo subito a
farti un esempio; ammettiamo che tu abbia un decimale (che chiamiamo A) che
rappresenti la differenza tra la tua velocità e quella del limite (di
velocità) presente su di una determinata strada e tu vuoi sapere a seconda
dei suoi diversi valori quanto sarà la tua multa:
switch(A) { case 0 : {  printf(" Non sei in multa!\n");
                                   break;
                                }
                   case 10 : {  printf(" La tua multa è di L. 10.000!\n");
                                   break;
                                 }
                  case 20 : {  printf(" La tua multa è di L. 20.000!\n");
                                    break;
                                 }
                  case 30 : {  printf(" La tua multa è di L. 30.000!\n");
                                    break;
                                 }
                  case 40 : {  printf(" La tua multa è di L. 40.000!\n");
                                    break;
                                  }
                  case 50 : {  printf(" La tua multa è di L. 50.000!\n");
                                    break;
                                 }
                  default : { printf(" I casi sono due: o sei sotto il
limite di velocità" "(A<0) oppure andavi così veloce che non si può
calcolare la tua multa!! ");
                               }
                }
A parte l'esempio un po' folcloristico, prendiamo in esame i vari
componenti:
come puoi notare CASE serve per controllare il valore di A, l'equivalente di
dire:
if(A==0) { ..... }
if(A==10) { ......}
e via di seguito!
Al termine di ogni "sottociclo" devi inserire l'istruzione BREAK affinchè il
programma salti alla fine dello SWITCH, altrimenti esegue tutti i CASE.
Infine l'istruzione DEFAULT è l'equivalente dell'ELSE, cioè in tutti gli
altri casi, ossia quando A è diverso da 0,10,20,30,40 e 50, fa quello che ci
scrivi dentro; in questo caso l'istruzione break è opzionale essendo il
DEFAULT l'ultima dell'istruzione SWITCH.
Spero di esserti stato di aiuto!!
Alla prossima....
Davide.
P.S. ==> Se non ti è chiaro qualcosa o mi sono espresso male, richiedi pure.
               Ciao.

 controllare piů condizioni chiudendole perň in un "ciclo"........
in un blocco non in un ciclo;
Ivan Molella

 Ivan Molella
Grazie per la precisazione. Hai ragione tu, è un blocco e non un ciclo!!
Ciao e grazie!
Alla prossima.
Davide!!
Newsgroup: it.comp.lang.c
Titolo: Compilatore per XP, quale?

Ciao a tutti quale compilatore C mi consigliate per windows XP?
visual studio è troppo pesante cercavo qualcosa di più leggero.
Grazie per la risposta.
-- 
 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 Grazie per la risposta.
Io uso .NET e se riesci a far girare XP allora puoi usare anche .NET ;-)
.NET piu' StlPost (
www.stlport.org
) e Visual Assist X
(
www.wholetomato.com
) sono un'ottima soluzione....
Ciao TD

 
gcc, ovvero *IL* compilatore, non gira su XP?
-- 
Roberto -MadBob- Guido
mail bob4mail***@***
gmail.com
web 
http://madbob.homelinux.com
BrainTop Project maintainer - 
http://braintop.sf.net

Newsgroup: it.comp.lang.c
Titolo: <no subject>

Perdonate l'ignoranza, ma ho iniziato a programmare da poco...
E' possibile effettuare delle query in C?
Se si, come faccio tecnicamente a farlo? Apro il file del Dbase e poi?
Grazie a tutti, ciao.
Cochina
--
Posted from 
laguna.tiscalinet.it
 [195.130.224.86]
via Mailgate.ORG Server - 
http://www.mailgate.org

Il collegamento con un database non e' specificamente del C, in genere vi
sono delle librerie aggiuntive che vengono utilizzate quando ti vuoi
attaccare ad un database, ogni db ci ha le sue ed ha le sue idiosincrasie.
Inoltre dipende dal sistema su cui vai a lavorare.
Insomma non c'e' un sistema unico e sicuro.
Davide

Grazie a tutti, ciao.
E' una questione riguardante l'ambiente di sviluppo che stai
utilizzando. Quasi ogni ambiente ha caratteristiche del genere. 
Se programmi in ambiente Windows, prova a reperire maggiori
informazioni su it.comp.programmare.win32, specificando quale ambiente
usi.
--
Andrea Laforgia (
andrea_...@bigfoot.com
)
---------------------------------------------

Newsgroup: it.comp.lang.c
Titolo: ctrl+tasto

Mi chiedevo come faccio a rilevare la pressione del tasto ctrl+s o alt+c e
cosě via.
Io uso djgpp


Rigorosamente con funzioni non standard. Prova getch() o simili.
EMG

 ha scritto nel messaggio
news:38B2C125...@flashnet.it...

Il djgpp supporta la funzione getxkey()...i codici dei tasti ctrl+qualcosa o
alt+qualcosa si trovano sotto keys.h!
Il tuo suggerimento mi ha dato lo spunto giusto per trovare quanto mi
serviva. Grazie
Newsgroup: it.comp.lang.c
Titolo: BOOKS ON-LINE

ciao a tutti
dove potrei trovare dei buoni manuali in linea sulla programmazione in C
??
e
in particolare sulla programmazione in ambiente Unix????

...

Prova a
http://www.mcp.com

Newsgroup: it.comp.lang.c
Titolo: Threads e I/O asincrono

Sera a tutti,
ultimamente sto usando parecchie volte le tecniche di I/O multiplex
(le sto studiando)
Dato che dispongo di processore multi-core mi stò informando su come
sfruttare la presenza di più processori per far scalare i programmi.
La risposta pare essere il multithreading.
Anzitutto come faccio ad essere sicuro che se creo più threads questi
vengano disposti su tutti i processori? (se c'è un modo per saperlo) o
comunque forzare questa cosa... leggendo in giro pare che sia tutto
trasparente al programmatore.
Seconda domanda: posso combinare multithreading e multiplexing? Nel
senso che creo un nuovo thread (ne ho quindi due) e uso in questi
tecniche tipo poll/epoll select kqueue etc... In questo caso possono
esserci condizioni critiche o è tutto tranquillo come se facessi
semplice I/O asincrono?
Per ora è tutto, ringrazio chiunque risponderà.

 Per ora è tutto, ringrazio chiunque risponderà.
Prego, ciao!

 [...]
Ciao  Manlio

 Prego, ciao!
Molto gentile :)
Buona giornata.

 Ciao  Manlio
Ciao, gentilissimo!

 Buona giornata.
Ciao!

 Ciao!
Ciao e buona serata.

 Ciao!
Ciao e buona serata.

 La risposta pare essere il multithreading.
vedo solo ora il tuo post. Posso consigliarti un paio di spunti di
riflessione ?
1 - legge di Amdahl.
2 - The Art of Multiprocessor Programming - Maurice Herlihy Nir
Shavit.
3 - Professional Multicore Programming Design and Implementation for C+
+ Developers - Cameron Hughes Tracey Hughes
La prima l'avevo studiata all'università anni or sono :-(
Gli altri due sono due libri che ho letto perchè l'argomento
appassionava anche me (oltre
che per lavoro).
In breve ti dico che non basta creare una flotta di thread per
"scalare" ma c'è una teoria
dietro ... un perchè delle cose. Scoprirai che lo "Speed Up" (see
Amdahl's law) non è
proporzionale all'aumento di thread/processi quindi devi andarci giù
di comunicazione tra
processi in modo efficiente (i.e. with lock free queue) "breakdown
problems" (ovvero suddivisione
intelligente del problema in task) ecc. ecc.
Questo post solo per dare un altro spunto di riflessione (basato più
sull'approccio diverso al problema).
Un'ultima cosa, ai fini dell' "ottimizzare il multicore"  puoi
intervenire a livello di :
- linguaggio
- compilatore (diverse direttive (alcune) specifiche per architettura)
- OS
- Libreria (posix, se leggi bene le specifiche ti rederai conto della
sua potenza)
buono studio.


 buono studio.
Grazie =D
Buona serata, ciao!
Newsgroup: it.comp.lang.c
Titolo: implementazione nel .h

ho notato che e' possibile, nel file header, scrivere oltre alla
dichiarazione (o definizione... ancora non ho chiara la differenza) di una
classe, anche la sua implementazione
vorrei sapere da qualcuno piu'
esperto se tale pratica puo' essere considerata 'pulita' o se invece
presenta dei problemi
--------------------------------
Inviato via 
http://usenet.iol.it

 classe, anche la sua implementazione
it.comp.lang.c++
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

lo hanno levato dal mio server
(chissa perche' poi)


Ti rispondo riguardo al C(ma il discorso resta valido, in
quanto il linking del C++ è lo stesso del C; in pratica
nell'oggetto viene inserito come nome del metodo qualcosa
del tipo nomeclasse_nomemetodo_listaparametri; la
listaparametri serve per i casi di overloading): un file
header è semplicemente testo che il preprocessore, prima
della compilazione, mette al posto dell'include; quindi puoi
inserire la definizione delle funzioni. Vale anche per i
metodi C++. Però non si fa di solito perché:
a) non si vogliono dare i sorgenti;
b) quando si lavori su progetti seri, che richiedono lunghe
compilazioni, è importante ridurre il tempo di compilazione;
quindi se separi l'implementazione, essa sarà compilata solo
una volta e linkata in tutti i programmi in cui serve
c) ora che ci penso, se il tuo programma è in due(o +) file
.c (o .cpp) che poi linki, se includi in entrambi il tuo
header con le definizioni, otterrai un errore "duplicate
function definition", in quanto la funzione (tutto quanto
vale anche per i metodi) funzione_di_libreria è presente nel
codice oggetto di entrambi i file; quindi il metodo delle
definizioni nell'header non funziona. Se invece la
definisci(cioè inserisci il codice a parte) una volta sola e
linki il codice oggetto ottenuto con gli altri, non c'è
problema.
Potresti chiedere(tu o altri): ma se includo l'header in due
file, non avrò la definizione nei loro file oggetto? Falso:
quando il compilatore incontra il prototipo, capisce che
"esiste questa funzione/metodo" da qualche parte e inserisce
nel file oggetto qualcosa che il linker legge come "devo
andare a cercare questa funzione da qualche parte finché non
la trovo".
--
Paolo Giarrusso
"Antonio" <x...@xxx.xx> ha scritto nel messaggio
news:212Z63Z98Z227Y...@usenet.iol.it...

Newsgroup: it.comp.lang.c
Titolo: Quick C e Win2000

ho rispolverato il mio buon vecchio Quick C (la mia prima licenza acquistata
di un compilatore)
mi serve per qualche programmino semplice semplice
ma installandolo su Win2000 non riesco proprio a crearmi un ambiente
funzionante
se qualcuno è riuscito a farlo girare correttamente al massimo della sua
potenzialità è pregato gentilmente di fornirmi le dovute indicazioni
ringrazio sentitamente
p.s.
per farlo funzionare ci riesco e compilo anche qualcosina
ma non gira come ai vecchi tempi sul buon 386 (quasi quasi scendo in garage
e rispolvero anche il buon vecchio 386 forse faccio prima)

funzionante
Parli del Quick C per Windows o della versione DOS ?
Quali problemi hai riscontrato ?
ciao, acc.
acc (at) libero dot it

 Quali problemi hai riscontrato ?
ovviamente per dos
(era installato su un 386 windows esistente  3.11)
dunque il problema è dato dalle modalità di compilazione
ovvero io mio sono creato un mio ambiente di programmazione con editor
apposito (uso uno mio oppure ultraedit)
successivamente lancio una sessione di compilazione con i parametri passati
ad un batch
e qui  cominciano i problemi
in quanto start è un comando valido sotto cmd
mentre quick c lavora solo sotto command ( e non sempre bene)
se conosci il modo di integrare i vari vantaggi
anche se credo che sia un problema da sottoporre al NG di win2000
però se qualcuno che programma ancora con il buon vecchio C lo avesse
installato su win2000 forse sarebbe stato di aiuto


installato su win2000 forse sarebbe stato di aiuto
Non l'ho usato sotto win2k, credo comunque ti convenga aprire una
sessione DOS e da li lanciare il batch, credo anche sia possibile
aprire la finestra DOS dal batch, anche se non ho mai provato.


 aprire la finestra DOS dal batch, anche se non ho mai provato.
parli di sessioni DOS?  è appunto di questo il problema
Win200 ha due modalità una è con il 
command.com
 e l'altra con CMD.exe
bene con command ,com funza più o meno bene ma la sessione è limitata e non
puoi lanciare comandi START per aprire nuove sessioni da quella
con CMD invece riesci a lanciare START ma si blocca la compilazione via
batch
se qualcuno è riuscito a coniugare correttamente le due cose ben venga
anche se adesso sono diventato chiaramente [OT] e di questo me ne scuso , ma
del resto non è che da qualche altro NG  si trovano programmatori che usano
il C

 il C
Ma non sarebbe il caso di aggiornare il compilatore? Se ne trovano di
free che funzionano alla grande...
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 free che funzionano alla grande...
certamente
ma mi serve proprio quello.
devo aggiornare del software già distribuito.

 ha scritto nel messaggio
news:b6rqst$aif$1...@lacerta.tiscalinet.it...

perché non fai partire la macchina da dishetto dos?
Ciao
GDR
Newsgroup: it.comp.lang.c
Titolo: (HELP)Leggere stringhe dalla posizione 0 a 8

Come posso fare se voglio leggere da file una riga che consideri SOLAMENTE
la stringa che va dalla colonna 0 a 8?
Grazie a chi mi aiuterą
Dany

Newsgroup: it.comp.lang.c
Titolo: Parere su questo manuale

 argomenti.
Questo l'ho letto al primo anno di informatica, per ingegneria
informatica.
Pur se basato sul C, cerca di avere un approccio generale alla
programmazione.
Come manuale di C non e' affatto esauriente, ma se ti serve effettivamente
come "manuale di base di fondamenti di informatica e programmazione"
dovrebbe fare al caso tuo. 
Ciao,
Riccardo
p.s. magari sfogliandolo in libreria ti puoi fare un'idea di come e'
amministrato
-- 
-=Riccardo Galli=-
 _,e.
s~  ``
 ~@.   ideralis Programs
.   ol 
 `**~  
http://www.sideralis.net

 ma mi sembra piu' un secondo passo
Sono d'accordo, premesso che non l'ho comprato (ma presto lo farò :-)) 
ma da quel poco che ho letto mi è sembrato molto più utile se hai già 
una conoscenza di C e informatica in generale. Come primo passo non mi 
sembra appropriato. Meglio l'altro per cominciare.
Ciao
Wezzy

 K&R e/o D&D
io credo che il Deitel sia esattamente il libro che stai cercando: è
proprio un manuale di base di programmazione che prende come
riferimento il C.
-- 
Ciao,
    Giuseppe

 ha scritto nel messaggio
news:86r8bon...@macario.it...

Concordo con Giuseppe credo che il Deitel sia un ottimo libro sia per
imparare a programmare che per imparare il linguaggio C.
Ciao.
       Alessandro.
Newsgroup: it.comp.lang.c
Titolo: Puntatori a void

Ciao a tutti,
Ho una funzione, writeEEprom(int addr, unsigned char data), che scrive un
byte sulla mia eeprom. Funziona.
Il mio problema č che alle volte devo salvare in eeprom 2,3 o 4 byte
(unsigned int, unsigned short long e unsigned long sul mio sistema, che č
un PIC). Ho scritto la funzione sottostante, ma mi va ovviamente in errore,
dato che dereferenzio un puntatore a void.
void writeEEprom2(void *data, int addr, char len){
 
  unsigned long mask;
  int i;
  mask = 0x000000FF;
  for (i=0;i<len;i++) {
    writeEEprom( TIME_ADDR+i, (*data&mask) );
    mask = mask << 8;
  }
}
Come posso dire a quel puntatore a cosa punta, basandomi sul parametro len?
grazie
-- 
g4b0, linux user n. 369000
http://gabo.homelinux.com

 grazie
Non serve sapere che tipo di dato hai.  Se come hai scritto la 
funzione writeEEprom() accetta un singolo byte devi fare il cast a 
(char *).  Anche mask non serve perché con *data leggi sempre lo 
stesso dato (ed in seguito mask lo azzera).  Prova a modificare il 
ciclo 'for' come segue:
    for (i = 0; i < len ; i++) {
       writeEEprom(TIME_ADDR + i, *((unsigned char *)data++));
    }
Ciao
Giovanni
-- 
   A computer is like an air conditioner,
   it stops working when you open Windows.
   Registered Linux user #337974  < 
http://giovanni.homelinux.net/
 >

 
In effetti ora funziona quasi, l'unico problema è che il puntatore a void
non avanza.. Ho provato anche così:
for (i = 0; i < len ; i++) {
        writeEEprom(TIME_ADDR + i, *((unsigned char *)data));
        (unsigned char *)data++;
}
Ma il risultato è che se passo, ad esempio, 0xAABBCCDD (un long a 32 byte),
mi ritrovo 4 byte scritti in eeprom così: 0xDD 0xDD 0xDD 0xDD (il mio
sistema è little endian)..
Possibile che nonostante il cast non avanzi di un byte? che sia un problema
di precedenza degli operatori? ora provo con un po' di parentesi...


 
Potrebbe essere un problema di compilatore che anche usando il cast 
non incrementa il puntatore.  Usando il gcc funziona correttamente. 
Puoi provare ((unsigned char *)data)++, ma se non funziona  è 
necessario usare un puntatore locale di tipo (unsigned char *).
unsigned char * tmp = data;
for (i = 0; i < len ; i++) {
         writeEEprom(TIME_ADDR + i, *tmp++);


 
Ci avevo pensato anche io a ((unsigned char *)data)++, ma mi da errore di
compilazione. Alla fine ho risolto con un puntatore locale, mi sa che
abbiamo fatto contemporaneamente lo stesso ragionamento :)
Grazie mille

Newsgroup: it.comp.lang.c
Titolo: Delucidazioni su fscanf [linux]

Salve,
non riesco a capire perché il seguente spezzone di codice non funziona:
while (fscanf(streamout,"%s",s)!=EOF) {
	printf("%s\n",s);
}
In pratica, streamout è un file che contiene (fra gli altri) i seguenti 
dati:
-rw-r--r--    1 luca     luca          360 Mar 19 21:49 test2.c
-rw-r--r--    1 luca     luca         1174 Mar 21 10:22 test3.c
L'output dello spezzone di programma di cui sopra è il seguente:
-rw-r--r--
1
luca
luca
360
Mar
19
21:49
test2.c
-rw-r--r--
1
luca
luca
1174
Mar
21
10:22
test3.c
Io invece vorrei che mi leggesse riga per riga, e non parola per parola.
Ho anche provato a scrivere fscanf in questo modo sperando che capisse 
che la stringa che doveva leggere doveva essere sino all'acapo...
fscanf(streamout,"%s\n",s)
Ma il risultato è stato il medesimo.
Dove sto sbagliando?
Grazie,
   Luca

 }
[cut]
scnaf ferma la lettura ad ogni segno di tabulazione che incontra.
Inoltre, così non puoi nemmeno controllare un eventuale overflow.
Usa fgets (man fgets) e vivi tranquillo, ma stai attento perché
inserisce anche '\n' nell'array.
-- 
Per l'e-mail rimuovere le maiuscole e gli underscore

 inserisce anche '\n' nell'array.
What about this?
fscanf(streamout,"%255[^\n]\n",s)
This seems to work... it should also limit the input to 256 chars, correct?
Thanx,
   Luca


A santa pace, passare da NG inglesi ad italiani e viceversa a volte mi 
fa perdere la cognizione di che lingua sto usando.
Ad ogni modo, la fscanf dell'esempio precedente sembra funzionare, e, da 
  quello che ho capito, limita l'input a 256 caratteri, giusto?
Grazie,
   Luca

 correct?
255+1 per '\0'.

Newsgroup: it.comp.lang.c
Titolo: perchè non funziona?

devo fare una funzione che restituisca il percorso senza il nome del file:
void ExtractPath(const char *fullPath[], char *buffer[])
{
 int lastIndex, z, len = lstrlen(*buffer);
 for(z=0; z<=len; z++)
  *buffer[z] = '\0';
 len = lstrlen(*fullPath);
 for(z=len; z>0; z--) {
  if(*fullPath[z]=='\\') {
   lastIndex = z;
   break;
  }
 }
 for(z=0; z<=lastIndex; z++) {
  *buffer[z] = *fullPath[z];
 }
}
la chiamo cosě:
 char buf[256];
 char path[] = "C:\\Programmi\\Microsoft\\dumpbin.exe";
 ExtractPath(&path, &buf);
 MessageBox(NULL, buf, "ExtractPath() result:", MB_OK |
  MB_ICONINFORMATION);
 return 0;
ma il compilatore mi dice:
test.cpp(15) : error C2664: 'ExtractPath' : cannot convert parameter 1 from
'char (*)[37]' to 'char *[]'
        Types pointed to are unrelated; conversion requires
reinterpret_cast, C-style cast or function-style cast
Error executing cl.exe.
perchč????
--
ciao
..::[xaero]::..

 ExtractPath(&path, &buf);
Dichiari il 1 argomento di ExtractPath come vettore di puntatori a
char e invece gli passi un vettore di char .

 char e invece gli passi un vettore di char .
ma quindi dove sbaglio? nel passare l'argomento, oppure ho scritto male la
routine?


 ..::[xaero]::..
Path e buf sono puntatori a carattere e & č di troppo.
Sostituisci:
ExtractPath(&path, &buf);
con
ExtractPath(path, buf);
Vedi anche le funzioni  _splitpath() e _makepath() in stdlib.h:
probabilmente  possono servirti senza creare una funzione ad hoc.
HTH

 HTH
grazie. ho usato _splitpath()


Newsgroup: it.comp.lang.c
Titolo: [OT] Eseguibile troppo grande

Salve a tutti, ho un file.c di 3 kb, creo
creo il file oggetto con gcc -c -s , passo all'eseguibile
con gcc -o , il risultato e un file.exe da 151 kb.
Mi sapete dire quali flag vanno passati per avere l'exe
il più piccolo possibile? Sto usando il djgpp come compilatore.
Lo strip del djgpp lo riduce solo di pochi kb.
Se uso strip del mingw non lo strippa ! mi da errore.
Se uso upx lo riduce ma e sempre troppo per un sorgente
di 3 kb, sui 50 kb.
Chi mi aiuta? :-)
Grazie a tutti
Ciao

gcc è noto per la grandezza dei file eseguibili che crea.
Dipende inoltre da che librerie statiche sono incluse durante
il linking. Potresti provare con tcc o altri compilatori. Ma
comunque 50 kb non è che sia un enormità...
A. Fontana
www.e-nuts.net
"Max" <m...@max.max> ha scritto nel messaggio 
news:43b1b221$0$1071$4faf...@reader4.news.tin.it...


[...]
... va bene, vi ringrazio tutti e due!
Ciao

Newsgroup: it.comp.lang.c
Titolo: PER ANGELO

ciao brutame!!
mi appichi la soluzione della profondità??
attaccami un esempio solo per una funzione poi l'altre le faccio io..
sei riuscito a fare il MCD??
ciao
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 ciao
Per le cose private esistono le E-MAIL!
-- 
Andrea Bergia - studente          Linux Registred User #281550
Per favore non mandatemi allegati in Word o PowerPoint.
Si veda 
http://www.fsf.org/philosophy/no-word-attachments.html