mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c
Titolo: domanda semplice...?

Salve a tutti.
Ho definito un tipo
char pippo[30] e
char pluto[]="ciao";
Se faccio :
sprintf( pippo, "%s", pluto );
copio la stringa "ciao" in pippo a partire dal primo byte di pippo stesso.
Esiste un modo (tramite qualche flag o specificatore di testo/formato) per 
far sě che "ciao" invece che "a sinistra" venga messo "a destra" di pippo? 
(ovvero la "o" finale di "ciao" vada in pippo[29]).
Non c'č qualche trucco per allineare il testo a destra?
Grazie.
Ciao 

 Ciao
Beh potresti passare alla sprintf l'indirizzo giusto:
sprintf(&pippo[30-strlen(pluto)],"%s",pluto);
qualcosa del genere... fai qualche prova...
ciao!
-- 
daniele_athome

daniele_athome wrote:

Ovviamente prima di fare questa cosa pulisci la stringa per evitare
casini...
memset(pippo,0,30);
-- 
daniele_athome

 sprintf(&pippo[30-strlen(pluto)],"%s",pluto);
grazie, ma io mi chiedevo se ci fosse uno specificatore o qualcosa di simile 
dopo o primai il "%" o
addirittura un'altra funzione per fare ciň, evitando l'uso di strlen.
ciao 

 
Leggi la doc di printf/sprintf è molto utile in questi casi...
	char pippo[30];
	char pluto[]="ciao";
	sprintf( pippo, "%30s\n", pluto );

 memset(pippo,0,30);
Così non fai niente perchè la stringa è composta dai primi caratteri 
tutti terminatori e poi dalla stringa di interesse....
Anche se è un brutto modo per risolvere il problema, avresti dovuto mettere:
memset(pippo, ' ',30);

 sprintf( pippo, "%30s\n", pluto );
Grazie mille! 

 sprintf( pippo, "%30s\n", pluto );
ma cosě non "splafoni" di due byte? (il byte relativo all "\n" che hai 
aggiunto, in piů pluto č un array di 5 byte, o sbaglio?) 

> in piů pluto č un array di 5 byte, o sbaglio?)
o meglio, sprintf aggiunge dopo "ciao" uno 0. 

 
Si hai ragione ^_^ la forza dell'abitudine a mettere i ritorni a capo.
L'esempio l'ho buttato lì per farti capire la sintassi (la prox volta ci 
penso 2 volte prima di rispondere in questo modo)
Ciao
P.s. pluto è un array di 5 byte ma printf copia solo a parte prima dello 
0 terminatore (quindi i primi 4 byte)

 sprintf( pippo, "%s", pluto );
sprintf(pippo, "%29s", pluto);
* Ricordati il posto per il terminatore di stringa
* sprintf non puo` controllare la dimensione del buffer di output, va
  sulla fiducia
Luca
-- 
Home: 
http://kronoz.cjb.net
Collect some stars to shine for you
And start today 'cause there's only a few
A sign of times my friend

GeeRay wrote:

Ah gia e` vero: distrazione :)
-- 
daniele_athome
Newsgroup: it.comp.lang.c
Titolo: Help.. Sbloccare accept... :-(

salve gente,
una domanda: sto facendo un progetto per l'universita' in C sotto
linux solo ho un problema da risolvere ... urgentemente grazie :)
ho un master ed una serie di slave che eseguono una connect al master.
Il master ha ovviamente fatto un ciclo di accept.
Il mio problema e':  se uno slave e' per qualche motivo down.. (il
master sta eseguendo un ciclo di accepet secondo il numero di slave)
come faccio a sbloccare il master dalla accept per markare quello
slave (non mi interessa sapere quale esattamente mi basta il numero di
quelli down) come down?
O in parole povere come faccio a sbloccare il master dalla accept.. Io
come soluzione avevo pensato ad un sengale (alarm) e inefetti l'alarm
fa il suo dovere...  solo ca**o quando scatta l'alarm, l'alarm fa 
eseguire l'handler e mi ritorna a bloccarsi sull'accept!? non c'e'
modo di dirgli di andare all'istruzione dopo o fermare l'accept?
Vorrei gestire la cosa con gli alarm ed evitare di creare un thread
per fare quello che in teoria dovrebbe fare l'alarm.Sapete no, i prof
sono puntigliosi ;-)
vi riporto sotto due righe del codice che ho fatto... 
rignraziandovi
saluti 
       Merlino
while [.........]
  signal(SIGALRM , handler);
  alarm (100);
        connect_socket= accept(server_socket, (struct sockaddr *) &   
 client_addr, &client_addr_len);
 
      SYSTEM_CALL(connect_socket, "aprendo il socket del master",
ret_err);
      ricevuti++;
      if (ricevuti == attivi) alarm(0);
      else if (!problemi) [......] 
// problemi e' booleana e la setto nell'handler


it.comp.os.linux.developement
Ciao
--
Timothy Redaelli
Newsgroup: it.comp.lang.c
Titolo: parser espressioni

Salve, dovrei realizzare un piccolo parser per espressioni in c. Deve 
essere molto semplice, nel senso che, acquisita un'espressione 
aritmetica semplice (con +,-,*,/,% più le parentesi tonde) mi stampi a 
video la stessa espressione con le parentesi che riflettono la 
precedenza e l'associatività degli operatori. Ho iniziato a buttare giù 
del codice, ma, ho pensato, che sicuramente c'era qualcosa in rete.. ho 
provato a googlizzare "espressioni parser", ma i primi cento risultati 
non mi hanno portato molto lontano..
Potete aiutarmi??

In un attimo di smarrimento Sracatus disse:

credo ti convenga utilizzare gli alberi binari.
-- 
By_Baitch
"Live Your Life!" (Ring ain't a jail)
http://utenti.tripod.it/baitch

Er Baitch wrote:
 > credo ti convenga utilizzare gli alberi binari.
 >
 >
 >
Si, l'idea era proprio quella.. cosě mi sarei potuto ricostruire tutta 
la struttura di dipendenze..



Se non hai bisogno di reinventare l'acuqa calda (cioč se non si tratat
esplicitamente di un esercizio ad esempio) potresti farti aiutare da
tools tipo lex (o flex) e yacc.
Il primo č un generatore di scanners e lavora insieme all'altro
(tipicamente) per costruire compilatori, interporeti e quel che ti
pare.
Generano codice C.
Augusto Pucci
http://www.neuraldaemon.com/pucci

Augusto Pucci wrote:
 > Se non hai bisogno di reinventare l'acuqa calda (cioè se non si tratat
 > esplicitamente di un esercizio ad esempio) potresti farti aiutare da
 > tools tipo lex (o flex) e yacc.
 > Il primo è un generatore di scanners e lavora insieme all'altro
 > (tipicamente) per costruire compilatori, interporeti e quel che ti
 > pare.
 > Generano codice C.
 >
 > Augusto Pucci
 > 
http://www.neuraldaemon.com/pucci
Non è male come idea.. solo che il codice lo dovrei maneggiare con 
facilità e essere operativo tra poche giorni.. vi chiedo dunque se il 
codice che generano sia molto corposo per una funzionalità così semplice 
e se siano difficili da imparare a usare..
grazie

 e se siano difficili da imparare a usare..
io quello in C ce l'ho già fatto (era il progetto dell'anno scorso ^__^)
se ti serve posso mandarti il mio (è lunghetto ma và...)
l'unica cosa che dovresti correggere è il controllo durante l'immissione
di espressioni che iniziano con la parentesi chiusa:
Es: 
a=);
ciao




Bhe il codice generato è complesso, ma le parti che ti servono e che
devi modificare sono relativamente semplici, il resto è diciamo "per
uso interno" e proprio l'uso di strumenti simili ti permette di
astrarti da molti dettagli.
Diciamo che molto dipende dalla complessità di quel che devoi fare...
e comunque avresti il vantaggio di aver imparato ad usare dei tools
molto utili in tanti contesti.
Augusto Pucci
http://www.neuraldaemon.com/pucci

Er Baitch wrote:
 > io quello in C ce l'ho già fatto (era il progetto dell'anno scorso ^__^)
 > se ti serve posso mandarti il mio (è lunghetto ma và...)
 > l'unica cosa che dovresti correggere è il controllo durante l'immissione
 > di espressioni che iniziano con la parentesi chiusa:
 > Es:
 > a=);
 >
 > ciao
 >
Me lo potresti mandare?? Grazie!!!
Newsgroup: it.comp.lang.c
Titolo: compilazione in Linux e Windows

sul mio libro (il Kelley Pohl) ci sono alcuni programmi suddivisi in
pių file .c, compilarli sotto linux non č un problema, ma in windows
io uso il BC 5.02 che mi permette di compilare un solo file per volta.
come posso rimediare?
-- 
Daniele
==============
POTERE E POTENZA!
(saluto evroniano)
ICQ: 106349465 nick: grifter
-togliere NOSPAM per le risposte-

 Daniele
---
Ramses
---
icq:39860665
http://knowledgeparty.cjb.net
http://evilz0ne.cjb.net

Newsgroup: it.comp.lang.c
Titolo: [OT] Domande di Assembly

Avrei un paio di domande da fare sulla struttura
degli assemblatori
(differenza fra assoluti e simbolici,
e differenza fra assemblatori ad un passo
e a due passate).
Esiste un newsgroup apposito (su 
cis.dfn.de
 non c'è)
oppure posso postare qui?
    danilo


no.
-- 
Mat/tia Belletti - Graduate student @ 
cs.unibo.it
ICQ: 33292311    - email: 
mbel...@cs.unibo.it
IRC: RedGlow     - site(s): 
http://mbellett.web.cs.unibo.it/
Jabber: RedGlow  - Linux registered user 299762 @ machine 213003

 oppure posso postare qui?
io consiglierei google ed eventualmente se insoddisfatto di quel che hai
trovato free.it.programmazione.assembly o comp.lang.asm.x86
-- 
none
Newsgroup: it.comp.lang.c
Titolo: CGM

Sto cercando disperatamente documentazione sul formato grafico CGM.
Ho provato a cercare dappertutto, compresi alcuni siti militari USA dove si
raccolgono gli standard.
Se qualcuno sa dove posso trovarli, o darmi una qualche struttura C della
loro definizione, sarei molto grato.
      Saluti
   Andrea Perazzol
P.S. Potete spedirmi il materiale a: 
han...@bandit.sci.univr.it

Sto cercando disperatamente documentazione sul formato grafico CGM.
Questo e' un sito dove c'e' una marea di link sui formati dei file :
http://www.uni-frankfurt.de/~amueller/ff.htm
Per i CGM ci sono 6 link (nella sezione 2d graphics)
(p.s. Se hai bisogno scrivimi in e-mail
      In case of need write me an e-mail)
Bye/ciao
Verno Vito Valerio
ICQ : 700.84.18
ve...@ibm.net
Genoa - Italy
Newsgroup: it.comp.lang.c
Titolo: Aiuto! devo leggere e scrivere immagini .ppm in C/C++

Salve!
Ho bisogno di codice sorgente C/C++ che legga e scriva le immagini in
formato ppm. In particolare devo leggere una immagine ppm e costruire un
array con tanti elementi quanti sono i pixel dell'immagine: in ogni
elemento c'e' la componente R del pixel. Stessa cosa per le componenti G
e B. Poi elaboro questi tre array e da essi devo riscrivere una immagine
ppm per vedere che cosa e' uscito fuori. Qualcuno mi puo' aiutare ad
esempio con librerie, esempi di codice, ecc? Vi ringrazio in anticipo!


Usa l'opportuna libreria libppm. A parte che roba del genere
la fai usando ppm2rgb3 senza scrivere una riga di codice...
-- 
Francesco P. Lovergine  f.lovergine AT 
iesi.ba.cnr.it

Newsgroup: it.comp.lang.c
Titolo: un minidotato del newsgroup

Come da oggetto, mi invia dei virus a ripetizione, dal giorno del mio primo
messaggio in cui compariva per errore la mia mail,
come posso fare per impedire questo divertimento quotidiano a tal idiota?

 ha scritto nel messaggio
news:_HEQb.4849
Ammesso che sia uno del NG, cosa di cui, fossi in te, non sarei cosě sicuro,
dai una sbirciatina a it.news.net-abuse e riposta lě la domanda.
Marcello
---
--
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (
http://www.grisoft.com
).
Version: 6.0.560 / Virus Database: 352 - Release Date: 08/01/2004

 dai una sbirciatina a it.news.net-abuse e riposta lě la domanda.
... e soprattutto sei sicuro che il tizio sia informato della cosa?
Blaster non mette banner per informare il proprietario del pc.
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 Blaster non mette banner per informare il proprietario del pc.
Gią...
Oltretutto bisogna considerare sempre questa eventualitą.
Marcello
---
--
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (
http://www.grisoft.com
).
Version: 6.0.567 / Virus Database: 358 - Release Date: 24/01/2004
Newsgroup: it.comp.lang.c
Titolo: compilatore

qualcuno sa dove posso trovare un compilatore per "c" freeware?
Grazie.

 Grazie.
Se cerchi un compilatore free per dos allora devi scaricare il
DJGPP.
Questo compilatore e' IMHO il migliore inoltre compila a 32 bit
(modalita' protetta).
Tra l'altro e' stato usato anche dalla Id Software per sviluppare Quake.
Lo puoi trovare a:  
www.delorie.com
-- 
  ______ ___  _  ______ ______                   ___                          
   )    ) ) )/ )(___   ) )    )______ ______ _____) )  ________________....  .
  / // / /  __/  __/ _/ / // /  ) _  ) )    ) )    / ________________....  .
 / _/ / / _ \  _/  /_  / _/ /  / ___/ / // / / // /   ______________.... . .
(_____)(_/ \_)(______)(_____) (_____)(__/__)(_____) __________________....  .
<===========================================================================>
*T*h*e*   *M*a*g*i*c*   *I*s*   *E*v*e*r*y*t*h*i*n*g*   *Y*o*u*   *I*m*a*g*i*n*e*
		e-mail  
DK2...@cryogen.com
 
am57...@silab.dsi.unimi.it

Newsgroup: it.comp.lang.c
Titolo: qualsiasi cosa

Sto scrivendo un vero e proprio vocabolario riguardante tutte le parole 
usate nel C dai comandi alle parti di un programma. Se qualcuno legge quì 
e vuole mandarmi un aiuto gli sarei grado qualsiasi parola va bene! potete 
mandarmela all'indirizzo 
salvato...@virgilio.it
 
Un Grazie anticipato.
PS: Vi sarei grato se mi mandate i termini in formato *.txt 
--
Questo articolo e` stato inviato da 
http://www.undergroundsecurity.net
Segnala gli abusi ad 
ab...@undergroundsecurity.net

 Un Grazie anticipato.
Guarda che non ti stai mica spiegando tanto bene.
Cosa sono "le parti di un programma".
Se vuoi un elenco delle parole chiave del C le trovi in qualunque
manuale o con google
Tra le altre cose sono molto poche.
In ogni caso siccome io in un programma C posso definire una
funzione che si chiama grosso modo come mi pare, allora in senso
lato il numero di parole "usate" nel C e' potenzialmente elevatissimo.
ciao,
g.

Per "parole usate" mi riferisco a tutti i termini del C
 esempio: funzione, strutturato, for, ecc... 


 esempio: funzione, strutturato, for, ecc...
mi devi spiegare il termine strutturato, poi io ti spiego gli altri se vuoi 
;-)
Tommaso
Newsgroup: it.comp.lang.c
Titolo: invalid read of size e qsort

Trovo "strani" errori eseguendo valgrind, e meno male che ho tentato di
togliere tutte le malloc...
==23644== Invalid read of size 2
3644==  Address 0x41be02e is 0 bytes after a block of size 6 alloc'd
e alla fine mi dà 3684 still reachable in 1 block.
Il codice incriminato è praticamente questo
--8<---------------cut here---------------start------------->8---
int rem_num = INITIAL_CARDS(game->num_players);
game->to_remove = malloc(sizeof(Card) * rem_num);
int card_cmp(const void *v1, const void *v2)
{
     return (*(Card *)v1 - *(Card *)v2);
}
void free_conf(Game *game) {
     free(game->to_remove);
}
 qsort(game->to_remove, rem_num, sizeof(Card), card_cmp);
--8<---------------cut here---------------end--------------->8---
vedete qualcosa di strano?

 vedete qualcosa di strano?
Mm ok questo sembra essere a posto, dopo aver messo Card * invece di int
* in card_cmp si era sistemato.
Ma tutt'ora non capisco cosa questo voglia dire
--8<---------------cut here---------------start------------->8---
==24174== HEAP SUMMARY:
==24174==     in use at exit: 0 bytes in 0 blocks
==24174==   total heap usage: 1 allocs, 1 frees, 6 bytes allocated
==24174== 
==24174== All heap blocks were freed -- no leaks are possible
==24174== 
==24174== ERROR SUMMARY: 43 errors from 1 contexts (suppressed: 15 from 8)
--8<---------------cut here---------------end--------------->8---
Prima tra l'altro le allocs erano 2, solo facendo il cast è diventata,
una sola, wtf?
E questo:
--8<---------------cut here---------------start------------->8---
==24174== Invalid read of size 2
==24174==    at 0x8048D62: init_deck (in /path//solutions/final/razz)
==24174==    by 0x8048A43: loop (in /path//solutions/final/razz)
==24174==    by 0x80486CE: main (in /path//solutions/final/razz)
==24174==  Address 0x41be02e is 0 bytes after a block of size 6 alloc'd
==24174==    at 0x40238FC: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==24174==    by 0x804879D: get_args (in /path//solutions/final/razz)
==24174==    by 0x80486C2: main (in /path//solutions/final/razz)
--8<---------------cut here---------------end--------------->8---
Newsgroup: it.comp.lang.c
Titolo: divide et impera

Devo fare un programmino per calcorare la seguente espressione
a1+2*a2+3*a3+4*a4+...+n*aN
devo utilizzare un algoritmo di tipo "divide et impera" e come input
devo dare gli a1..an e n la funziona che ho fatto e'
int Somma(int s[],int n,int primo,int ultimo)
{
 if(primo==ultimo==n)
            return (s[primo]*(primo+1));
   else return (Somma(s,n/2,primo,n/2) + Somma(s,n/2+1,n/2+1,ultimo)) ;
  }
e ovviamente non funziona
potete aiutarmi?
grazie

 ha scritto nel messaggio
news:3B0416C8...@tin.it...

 if(n == 1)
  return (s[primo] * (primo + 1));
 else
  return (Somma(s, n / 2, primo, n / 2 - 1) + Somma(s, n - n / 2, n - n / 2,
ultimo)) ;
}
main()
{
 int a[] = {1, 2, 3, 4, 5, 6, 7};
 printf("%d\n", Somma(a, 6, 0, 5));
 return 0;
}

devo dare gli a1..an e n la funziona che ho fatto e'
non potresti usare un ciclo for?
int r=0;
for(i=0; i<n; i++)
	r+=a[i]*(i+1);
return n;
Anto
--
Antonio Cuni, 19 anni, studente
Brainbench Certification: 
Master C++: 4.6, higher than 98% of all previous test takers.
C Language: 3.32, higher than 79% of all previous test takers.
http://www.brainbench.com/transcript.jsp?pid=1301688

Giovanni Casu wrote:

/* Somma nell'insieme _chiuso_ /_aperto_ [da .. a) */
int Somma(int s[],int da,int a)
{
        int n=a-da;
        if(da==(a-1))
                return (s[da]*(da+1));
        else return (Somma(s,da,da+n/2) + Somma(s,da+n/2,ultimo)) ;
}
Se non ho scritto c4%%4t3 per n = 4
somma ( 0 1 2 3 4 )             ritorna s[0]*(0+1)+s[1]*(1+1)+s[2]*(2+1)+s[3]*(3+1)
        somma( 0 1 2 )                  ritorna s[0]*(0+1)+s[1]*(1+1)
                somma( 0 1 )                    ritorna s[0]*(0+1)
                somma( 1 2 )                    ritorna s[1]*(1+1)
        somma( 2 3 4 )                  ritorna s[2]*(2+1)+s[3]*(3+1)
                somma( 2 3 )                    ritorna s[2]*(2+1)
                somma( 3 4 )                    ritorna s[3]*(3+1)
 
Invece per n=3
somma( 0 1 2 3 )                        ritorna s[0]*(0+1)+s[1]*(1+1)+s[2]*(2+1)
        somma( 0 1 )                    ritorna s[0]*(0+1)
        somma( 1 2 3 )                  ritorna s[1]*(1+1)+s[2]*(2+1)
                somma( 1 2 )                    ritorna s[1]*(1+1)
                somma( 2 3 )                    ritorna s[2]*(2+1)

Antonio Cuni wrote:

Grazie a tutti, ho visto solo oggi i reply , ho cmq risolto il problema
da solo (dopo una nottata tremenda).
il ciclo for non potevo usarlo perche' veniva richiesto esplicitamente di
usare una funzione ricorsiva
Newsgroup: it.comp.lang.c
Titolo: limite allocamento memoria

salve, ho alcune domande da porre
1)quale č la dimensione massima in byte dei file che č possibile aprire con
il C?
2)quale č la dimensione massima in byte  dell'array  che č possibile creare
con il C?
3)Se la Ram č 32 MByte ed il file wav da aprire, archiviato nell'hard disk,
č 40 MByte, allora
 che
 succede?
Il C si rifiuta di aprirlo? Viene tenuto in parte nella Ram ed in parte
nell'hard disk?
4)Se io devo gestire un array lungo 5 MByte, allora mi serve l'indice i che
arrivi fino a 5 MByte.
Ora io chiedo: quale tipo di intero mi garantisce ciň? Va bene long? O non
basta?
5)se io devo creare il file wav di 13 MByte posso creare in C il vettore
lungo 13 MByte e poi
 copiarlo nello stream associato al file, anch'esso di 13 MByte.
Esistono le tecniche piů efficienti (che sprechino meno memoria Ram) per
fare ciň?
grazie,
adriano

 fare ciò?
Puoi crearne un pezzo alla volta e trasferirlo un po' per volta.
E.

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

Ciao a tutti!
Come posso fare per ricevere in input una stringa più lunga di 128
caratteri, con gli spazi?
ho usato scanf, ma salta gli spazi e crea dei macelli incredibili.
Sono passato allora a gets, ma non prende più di 128 caratteri per
volta...come posso fare?
Grazie!

Idea barbara:
in un ciclo do .. while prendi i caratteri con una gets e riversali in
un unico buffer di dimensione congrua
e continua il ciclo se l'ultimo carattere non e' il terminatore.

caratteri, con gli spazi?
E' un limite di DOS.
Non c'entra il C.
--
Andrea Laforgia (ICQ 87230455)
http://www.geocities.com/AndreaLaforgia
"ci sono tre tipi di persone nel mondo : quelli che
 sono bravi in matematica e quelli che non lo sono."

Newsgroup: it.comp.lang.c
Titolo: errore ESP

Salve, ho scarsa esperienza nella programmazione C e C++,
sto modicicando i sorgenti di winvnc 3.3.7 per poter usare password più lunghe di
8 caratteri (per un max di 16 car.);
ottengo questo errore che non si riesce a debuggare,
qualcuno sa dirmi a che cosa all'incirca può essere dovuto?
http://www.geo.unimib.it/images/Image1.gif
grazie per ogni vostra delucidazione
Newsgroup: it.comp.lang.c
Titolo: problema con getchar()

salve sto scrivendo un programmino per testare i tempi di esecuzione di 
vari algoritmi, ma ho un problema tanto banale quanto irritante con 
getchar();
infatti chiedo all'utente se vuole utilizzare un determinato algoritmo 
in questo modo:
printf("blablabla... [s/n]\n");
c=getchar();
if (c=='s') {
	// il codice da eseguire
}
questo per tre diverse routine.
il fatto è che la prima volta vabene, ma la seconda pare assuma che la 
risposta sia stata 'n' e quindi salta il codice all'interno dell'if 
senza pensarci, mentre poi la terza volta torna a comportarsi normalmente.
sono leggermente attonito...
grazie


Se avessi provato a stampare i risultati di getchar(), avresti scoperto 
che la getchar() legge anche gli "a capo". Quindi, la prima lettura ti 
da 's', la seconda l'"a capo" ('\n'), la terza la nuova lettera, ecc...	
-- 
/**
  * Mattia Belletti - Undergraduate student @ 
cs.unibo.it
  * ICQ: 33292311   - email: 
mbel...@cs.unibo.it
  * IRC: BluShine   - site(s): 
http://cs.unibo.it/~mbellett
  * Linux registered user 299762 @ Linux registered machine 213003
  */

 senza pensarci, mentre poi la terza volta torna a comportarsi normalmente.
Il problema deriva da fatto nel buffer di stdin ci sono altri caratteri,
in  questo caso  e` rimasto  un newline. Se  tu premi  's' +  invio, nel
buffer  ci saranno  's','\n'. Devi quindi  svuotare il  buffer (non  con
fflush!) prima di leggere altre informazioni:
c = getchar();
/* Svuoto il buffer */
while(getchar() != '\n')
        ;
Luca
-- 
Home: 
http://kronoz.cjb.net
"It is more complicated than you think"
                -- The Eighth Networking Truth from RFC 1925

Newsgroup: it.comp.lang.c
Titolo: Funzione può richiamare funzione?

Salve a tutti , ho un problema , ho due file sorgenti , uno si chiama main.c
, dove ho dichiarato
tutte le variabile esterne che mi servono e tutte le funzioni , nel secondo
file , che si chiama "guarda
un'pò " , funzioni.c , intendo mettere tutte le funzioni .Ora , provo a
richiamare dall'interno di
una funzione la funzione clrscr(); maDjgpp mi indica un errore (anche nel
file funzioni.c sono
#include <tutti gli *.h che ci sono nel file main.c>
Il bello e che una prima compilazione del file funzioni.c con dichiarata la
funzione
clrscr()
{} non mi dava alcun problema , dopo averla cancellata e riscritta nello
stesso modo
oppure richiamarla dall'interno di un altra funzione , il compilatore(Djgpp)
mi segnala un errore
(conflicting types for 'clrscr' ...     c:/djgpp/include/conio.h (65) Error
:previous declaration of 'clrscr'
Qualcuno sa dirmi il motivo??
Grazie
Ciao :-) Roberto

 (65) Error :previous declaration of 'clrscr'
Penso sia dovuto ad una doppia definizione della funzione : una parte
del djgpp e una da parte tua. Non e' che per caso hai creato anche tu
una funzione clrscr() ?
ciao
Newsgroup: it.comp.lang.c
Titolo: misplaced else

Ciao
scusate sapete dirmi perche il compilatore mi da un errore di "Mislaced
else" su questa funzione che ho scritto?
Sul libro W. Kernighan sono molto usate.
Contribuenti  *readp(char *filname,Contribuenti cnbt[10])
{
   FILE *pf;
   char *buffer;
   int r,count,count2,c,ch;
   Contribuenti *p;
   p=cnbt;
   if((pf=fopen(filname,"r"))==NULL)
   {
     p->tpag=0;
     return p;
   }
   else
   {
     count=0;count2=0;c=0;r=0;
     while((ch=getc(pf))!=EOF)
     {
        if(ch!='\n')
          else if(ch!='\b')   /* Errore Misplaced else*/
          else if(ch=='\b') /*Misplaced else*/
          {
             buffer[count+1]='\0';
             c+=1;
             switch(c)
             {
                case 1:
                  strcpy(buffer,p[r]->lstnam[c]);
                  break;
                case 2:
                  strcpy(buffer,p[r]->frstnam[c]);
                  break;
                case 3:
                  strcpy(buffer,p[r]->tpg);
                  break;
                case 4:
                  strcpy(buffer,p[r]->tdv);
                  break;
                default:
                  break;
             }
          }
          else if(ch=='\n')
            r+=1;
          else
          {
            buffer[count]=ch;
            count++;
          }
     }
   return cntb;
   fclose(pf);
   }
}
grazie
                                  CIAO

           else if(ch=='\b') /*Misplaced else*/
Non ho capito bene cosa devi fare: se ch e` diverso da '\n' o '\b' cosa deve 
accadere? Il compilatore si fa la stessa domanda, per questo si incazza;-)
In pratica dovrebbe essere qualcosa del genere: 
         if(ch!='\n') {
                <qualcosa>;
         }
         else if(ch!='\b') {
                <qualcosa>;
         } 
         else if(ch=='\b') /*Misplaced else*/
Ciao,
Cecco
Newsgroup: it.comp.lang.c
Titolo: Imparare il C..

premesso che sò già i fondamenti della programmazione, visto che ho
programmato in java, vorrei imparare il C visto che l' università lo
richiede nel esame di programmazione....
avete link da consigliarmi?
manuali, esercitazioni, tutorials, dispense universitarie, listati di
codice,ect...
GRazie
DAnilo



ciao, anche io sto seguendo un corso universitario, però spiegano
molto bene e sto capendo tutto; io uso il libero della DEITEL&DEITEL
imho fatto molto bene e a volte spiegano più di quanto tu possa volere
:)
P.S. cmq girando su internet si trovano corsi di C gratuiti, basta che
usi un motore di ricerca come 
google.it
ciao!

 usi un motore di ricerca come 
google.it
 
www.lulli.net/paolo/hack.html
-- 
<!--_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
                      The Hacking Pages   
 
www.lulli.net
 
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-->

Newsgroup: it.comp.lang.c
Titolo: Quale libreria?

Salve,
c'e' qualcuno che puo' darmi una mano?
Sono alla ricerca di una libreria, un sorgente o similari
che permettano la lettura (e possibilmente la scrittura) di tracce dati su
cd.
In alternativa andrebbe bene anche documentazione inerente in modo da
potermi
autocostruire una libreria personalizzata.
Se serve aggiungo che, almeno per il momento, il tutto mi serve
per pilotare apparecchiature scsi.
Programmo con il watcom c/c++ 11.0a sotto dos/windows
La libreria puo' essere anche per sistemi linux...
Grazie per l'attenzione prestatami.
Marco Babbei

 cd.
l'autore di CDR Identifier (tra l'altro ottimo prg. per chi masterizza) sta
creando o ha ultimato una libreria freeware per masterizzare cd
lo puoi contattare a 
mi...@gum.de
 - non ricordo il sito
TobiX
Newsgroup: it.comp.lang.c
Titolo: Valorizzare variabile strutturata.

Da neofita del C, ho qualche difficoltà a comprendere il perché la “printf” 
mi ritorna l’indirizzo di memoria della variabile e non il suo valore.
Nello specifico vorrei visualizzare il contenuto di “conto[i].count” che, 
attraverso la “fscanf”, acquisisce un valore intero dal file 
“transazioni.dat”.
Questo il file “transazioni.dat” :
Mitsubishi 101 21/01/2004
Chrysler -30 01/02/2004
General_Motors -2000 10/02/2004
Chevrolet 50 04/03/2004
Kia 500 12/03/2004
BMW -1200 15/04/2004
Mercedes -400 23/04/2004
BMW -1000 22/06/2004
Questo il codice:
#include <stdio.h>
#include <string.h>
int main()
{
typedef struct{
     char name[18];
     char date[18];
     int  count[18];
}clienti;
clienti conto[100];
int i,j;
FILE *fp;
if ((fp=fopen("transazioni.dat","r"))== NULL)
{
    printf("File non trovato!\n");
    exit(1);
}
i=0;
while(fscanf(fp,"%s%d%s",conto[i].name, &conto[i].count, conto[i].date)!= 
EOF)
{
i++;
printf("%d\n", conto[i].count);
}
fclose(fp);
}
Grazie
Angelo 

 Angelo
Ciao
Giovanni
-- 
   A computer is like an air conditioner,
   it stops working when you open Windows.
   < 
http://giovanni.homelinux.net/
 >

a quella che hai appena letta e quindi non ancora riempita.
Il punto è proprio questo. Come faccio a stampare i valori dell'array?
Dove sbaglio?
Ciao
Angelo

 Dove sbaglio?
Tu hai usato il modo corretto di trattare e stampare un intero, è 
nella dichiarazione di 'count' che sta l'errore
Se invece tu volessi riempire e poi stampare un elemento dell'array di 
interi (come hai messo nella dichiarazione) dovresti avere un altro 
indice.
 > while(fscanf(fp,"%s%d%s",conto[i].name, &conto[i].count[indice],
 > 			conto[i].date)!= EOF)
 > {
 >     printf("%d\n", conto[i].count[indice]);


     printf("%d\n", conto[i].count[indice]);
E' esattamente quello vorrei fare ed in effetti non avevo pensato alla 
necessità
del doppio indice da un punto di vista logico.
Il fine ultimo è quello di riempire l'array, leggerlo, trovare i valori con 
segno negativo
e sommarli tra loro.
Non sono affatto sicuro se questa sia o meno la strada migliore per 
risolvere il problema.
Anzi, ti sarei grato se mi consigliassi la procedura più corretta.
Ciao
Angelo 


Ma il file da cui leggi i dati per ogni nome e data c'è un solo intero 
quindi non capisco il motivo per cui associ 18 interi 'count' ad ogni 
nome.  Se hai un array 'clienti conto[100]' significa che avrai 1800 
interi in totale.
Da come presenti la cosa e da come hai scritto il frammento di 
programma ti basta un solo intero.  Se invece devi fare tutt'altro 
devi rivedere l'algoritmo che ti legge il file e riempie l'array.


Hei ma cosa succede?
Newsgroup: it.comp.lang.c
Titolo: struttura

Secondo voi cosa sbaglio? nel senso.. che alla fine quando accedo alla
struttura.. mi da solo l'ultimo risultato...
Consigli?
#include "stdafx.h"
struct file
{
	char *nome;
};
struct file array[99];
int _tmain(int argc, _TCHAR* argv[])
{
	char server_path[256] = "c:\\";
	struct _finddata_t c_file;
	long hFile;
	int contatore;
	char temp[256];
 
	if ( ( (long) hFile = _findfirst( "c:\\*", &c_file)) == -1L)
	{
		printf("Errore nella ricerca dei file\n");
	}
	else
	{
		printf("%-12s\n", 
c_file.name
);
		for ( contatore = 0; _findnext( hFile, &c_file ) == 0; contatore++)
		{
			array[contatore].nome = 
c_file.name
;
			//strcpy(array[contatore].nome, (char *)
c_file.name
);
			printf("%-12s Conto: %d Array: %s\n", 
c_file.name
, contatore,
array[contatore].nome);
 
		}
	}
			/*	array[1].nome = "aaaa";
				array[2].nome = "bbbb";
				array[3].nome = "cccc";
				array[4].nome = "dddd";*/
printf("\nLista %s, %x", array[1].nome, &array[1].nome);
printf("\nLista %s, %x", array[2].nome, &array[2].nome);
printf("\nLista %s, %x", array[3].nome, &array[3].nome);
printf("\nLista %s, %x", array[4].nome, &array[4].nome);
	return 0;
}
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 [snip]
by LjL
ljl...@tiscalinet.it

 wrote

Che il programma sia scritto da cani concordo, ma....
struct file
{
char *nome;
};
struct file array[99];
questa era la dichiarazione di array! Comunque non e' del tutto standard C,
ha qualche cosa microsoft....
Tommy

 [snip]
by LjL
ljl...@tiscalinet.it
Newsgroup: it.comp.lang.c
Titolo: Allocare memoria per una struttura (rieccomi)

Salve a tutti,
 Voglio allocare memoria per una struttura con una malloc:
ad esempio la struttura è
struct persona{
  int età;
  char *nome;
  char *cognome;
};
non basta far questa malloc:
struct persona *p=malloc(sizeof(struct persona));
giusto..?
ma occorre allocare memoria per ogni singolo elemento della
struttura...giusto..?..o sbaglio..?
E come faccio ad allocare memoria per goni singolo elemento..?
Grazie mille.

 Grazie mille.
Prego

 Grazie mille.
ciau
Sbirish

grazie a entrambi
risposte molto esaurienti :D

Newsgroup: it.comp.lang.c
Titolo: acquisizione del clock

Devo acquisire dei dati da porta parallela o seriale ed ho bisogno di
registrare il tempo in cui è avvenuta. Qual è il delta t minimo fra una
acquisizione e la seguente e se dipende dalla velocità del computer come?
Grazie
Alessandro.

 acquisizione e la seguente e se dipende dalla velocità del computer come?
Credo che per la seriale vi siano 115'000 massimi byte letti/scritti tra CPU
e controller al secondo, per cui azzarderei che il tempo tra un byte e
l'altro sia:
1/115000 =  8,695652173913e-6
(calcolatrice di windows)
Ho il solo dubbio che si tratti di bit e non di byte, ma la sostanza rimane.
Ovviamente, di solito, la comunicazione effettiva avviene a velocità molto
inferiori, ma dipende da troppe cose che non hai specificato. Azzarderei un
9600 Baud.
--
Alessandro Monti

 Ho il solo dubbio che si tratti di bit e non di byte, ma la sostanza
rimane.
la velocità é 115.000 bps  ( bit per secondo )
Newsgroup: it.comp.lang.c
Titolo: putchar : descrizione della funzione in disaccordo col prototipo

Ciao,
Sui libri tra cui il buon K-R, si legge che il prototipo della
funzione putchar è:
int putchar (int c)
e la relativa descrizione è:
Visualizza il carattere immagazzinato in c.
Ora come è possibile che putchar visualizzi un carattere se putchar
torna un intero?
Ho fatto questo esempio che effettivamente mostra come putchar torni
dei caratteri:
#include <stdlib.h>
#include <stdio.h>
int main()
{
	char sentence[100] = "this car is fast";
	putchar(sentence[5]);
	printf("\n");
	putchar(sentence[6]);
    printf("\n");
	system("pause");
	return 0;
}
Produce come output:
c
a
Premere un tasto per continuare . . .

 torna un intero?
I caratteri possono essere tranquillamente convertiti in interi. Anzi in 
molti casi è comodo farlo.
E.


allora perché non hanno scritto come prototipo
char putchar (char c)

 char putchar (char c)
dove?
$ grep putchar /usr/include/stdio.h
extern int putchar (int __c);
extern int putchar_unlocked (int __c);
$
-- 
By ZeD


chiaro

andrew ha scritto:

La soluzione
	int putchar (int)
è più veloce e più comoda.
E.


ma errata, almeno fino a quando qualcuno non mi convince della
motivazione che hanno trovato coloro che hanno stabilito i prototipi
delle funzioni di libreria nello scrivere
int putchar (int)
quando invece a quanto pare sarebbe
char putchar (char)

andrew wrote:

forse hanno pensato alla codifica unicode
-- 
La maldicenza rende peggiore chi la usa, chi l'ascolta
e talvolta chi ne è l'oggetto.
                                             - C. Cantù -

andrew ha scritto:

con la tua soluzione come faresti a far restituire, alla funzioni 
putchar/getchar (e famiglia), i 256 valori che puo' assumere un byte piu' 
l'eventuale valore di EOF su errore?
nota: ti faccio questa semplice domanda trascurando qualsiasi altra 
motivazione che, credo, possa esserti meno evidente
(alcune delle quali, inevitabilmente, ci farebbe poi scivolare su discorsi 
di portabilita' tra vari sistemi/architetture...).
-- 
Cybertoldo
Per rispondermi via email, sostituisci moc.liamg con 
gmail.com

 - Mostra testo citato -
che legami ha l'unicode con il cast char -> int ?
Grazie

 Per rispondermi via email, sostituisci moc.liamg con gmail.com- Nascondi testo citato



ma hai letto quello che ho scritto, o vai per conto tuo?


 - Mostra testo citato -
forse tu alludi al fatto che su un pc un char potrebbe essere
codificato su 2 byte, ma da che mondo e mondo i char sono a 1 bit..

 [...]
Ciao   Manlio Perillo

 scritto
cosa significa deve restituire il carattere scritto?


 
putchar(c) restituisce c, oppure EOF, in caso di errore di scrittura.
Ciao   Manlio Perillo
Newsgroup: it.comp.lang.c
Titolo: Programmazione in C sotto Linux

Salve,
da poco tempo mi sto avvicinando alla programmazione in C sotto Linux; ho
gia' programmato in C sotto MS-DOS con il compilatore della Borland. Oltre
alle funzioni delle librerie standard <stdio.h> ed <stdlib.h> utilizzavo
altre funzioni di librerie quali <conio.h>, <graphics.h> , ecc.. messe a
disposione dal compilatore della Borland; non potendole piu' utilizzare
sotto Linux per ovvi problemi di portabilita' mi ritrovo ora a programmare
conoscendo le sole funzioni delle librerie standard <stdio.h> e <stdlib.h>:
questo mi impedisce di eseguire operazioni tipo lo spostamento del cursore
sullo schermo in modalita' testo, l'inizializzazione e l'utilizzo della
grafica e tante altre cose. Desideravo sapere: esiste un documento o manuale
che descrive dettagliatamente tutte le librerie ed annesse funzioni
utilizzabili nella programmazione in C sotto Linux (io posseggo la versione
Red Hat 5.0) ?
Ringrazio anticipatamente per il supporto.
Roberto Gnerre.


Poco tempo fa e' apparso un post simile.
Premetto che il merito di questa informazione non e' mio... sono solo uno di
quelli che ha letto il post.
Su sunsite c'e' il file
/pub/Linux/libs/ui/linux-conio-1.02.tgz
che emula (quasi) completamente le conio del DOS
Comunque comincia a fare un pensierino sulle curses...
Vi][oZ
-- 
Per rispondere togliere NONSCASSA da reply-to.
Newsgroup: it.comp.lang.c
Titolo: Memorizzare data ...

Ciao a tutti (passato buone vacanze? :) )!
Ho una domanda da porvi...dovendo memorizzare una data sotto forma di 
stringa su file e poi ricaricarla senza perdere troppa precisione come 
posso fare? Mi spiege meglio...se utilizzo strftime (con "%m %d %y") per 
la memorizzazione vado a perdere i secondi quando poi ricarico la data 
al successivo avvio del programma...non esiste un modo per "tenermi 
tutto" o il piu' possibile? (potrei in effetti memorizzare anche i 
secondo ma mi chiedevo se esisteva un metodo piu' scaltro per compiere 
l'operazione )
Ciao e grazie
Aragorn


copi il contenuto raw della variabile.
	FILE* fp = fopen("provadt.txt", "wb+");
	time_t now = time(NULL);
	fwrite(&now, sizeof(time_t), 1, fp);
	fclose(fp);
	fp = fopen("provadt.txt", "rb");
	now = 0;
	fread(&now, sizeof(time_t), 1, fp);
	fclose(fp);
	printf("%s\n", ctime(&now));
se vuoi un file non binario, ma di testo, puoi convertire in 
esadecimale, ma ci vuole qualche passo in piu'...
Ciao,
Zeppe

 copi il contenuto raw della variabile.
Rischioso.
Penso che convenga comunque lavorare in modo testo
con delle semplici stringhe. Dovrebbe essere sicuramente
più portabile.
In questo modo sei costretto a rileggere il file con programmi prodotti
dallo stesso compilatore (e librerie!).
--
Giorgio Silvestri
DSP/Embedded/Real Time OS   Software Engineer

 
Ciao! Ma come stringa cosa vado a memorizzare su file?
Ciao e grazie
Aragorn


Direi che non ci sono funzioni standard che parsano una stringa per 
riavere indietro il time_t (o struct tm) da cui sei partito.
La strada piu comoda e' quella di usare la strftime() mettendoci
tutti i dati che ti servono (anche i secondi, se ti serve cosi' tanta 
precisione) e poi farti una funzione che si rielgge e riconverte in un 
normale tipo time_t o struct tm.
Se usi solo i formati numerici, alla fine te la cavi anche con
una semplice sscanf come in (non testato):
time_t t;
int dd, mm, yy;
struct tm tm;
char buf[255];
// sprintf(buf, "%d %d %d", 26, 8, 2006);
sscanf( buf, "%d %d %d", &dd, &mm, &yy );
tm.tm_mday=dd;
tm.tm_mon=mm -1;
tm.tm_year=yy-1900;
t = mktime(tm);
ciao
Giacomo

 ha scritto nel messaggio
news:44f02935$0$30252$4faf...@reader1.news.tin.it...

Basta che procedi sulla falsariga del suggerimento di Giacomo e usi
le normali funzioni di lettura scrittura su file fprintf/fscanf o quello
che preferisci.
Mi sembra che lavorare in questo modo sia sufficientemente
semplice e portabile.
Con la variante di passare come argomento a mktime un indirizzo
e non la struttura stessa di tipo "struct tm".
struct tm tm;
/* ... */
t = mktime(&tm);
/* ... */


Newsgroup: it.comp.lang.c
Titolo: winsock2.h

ciao a tutti
ho la necessità di compilare con dev-c++ un sorgente C che utilizza
winsock2.h..
quando procedo alla compilazione mi viene restituito questo errore e non
capisco il motivo..
C:\DEV-C_~1\Include\winsock2.h:46: unbalanced `#endif'
come posso risolvere??
grazie dell'aiuto
--
Riccardo

 C:\DEV-C_~1\Include\winsock2.h:46: unbalanced `#endif'
rivolgiti al NG di programmazione per win32.
Tommy
Newsgroup: it.comp.lang.c
Titolo: Richiesta di aiuto

Ciao a tutto il NG
Oggi è una giornataccia e prego che qualcuno possa aiutarmi.
Quali sono i valori di ritorno della funzione atoi ?
grazie1000
eap90210

> Quali sono i valori di ritorno della funzione atoi ?
l'atoi ritorna un interno....

 Quali sono i valori di ritorno della funzione atoi ?
int atoi(const char *nptr);
#include <stdlib.h>
DESCRIPTION
The atoi() function converts the initial  portion  of  the
string  pointed  to  by nptr to int.
((Scusa, ma il tuo compilatore non ha uno straccio di
help in linea ?? ))
ciao,
g.

Ciao
innanzi tutto grazie!
Io però intendevo cosa ritorna atoi, nel senso, se la funzione fallisce,
perché nella stringa c'e' un carattere alfanumerico e quindi l'atoi fallisce
che restituisce ?
p.e. : if (atoi('129') == a cosa ?
   per esempio == NULL ( come la memcpy )
Capisco che oggi è la mia giornata NO, quindi vi chiedo scusa se non riesco
ad argomentare in modo proprio.
GRazie1000 a tutti
ciao
eap90210
"Giovanni Resta" <g.r...@iit.cnr.it.nospam> wrote in message
news:bgdg8p$gh3$1...@newsfeed.cineca.it...


p.e. : if (atoi('129') == a cosa ?
atoi prende un const char* (nullterminated) non un const char
atoi("1a2") torna 0.
hint: usa strtol invece di atoi.
sbirish.


Mi permetto di dissentire !
La atoi() converte fino a che riesce a convertire.
Quindi atoi("1a2") ritorna 1  e
atoi("1234eyeryrey") ritorna 1234
invece sono daccordo sul fatto che
atoi('129')
fosse cannato. Dovevi scrivere atoi("129");
ciao.
g.

La atoi() converte fino a che riesce a convertire.
ho cannato hai ragione,
vado a frustarmi.
sbirish.

Newsgroup: it.comp.lang.c
Titolo: AIUTO !!!!!

Sono un aspirante programmatore, conosco solo il QuickBasic e il
Pascal , voglio imparae il C e il C++, ma mi manca il compilatore !!!!
Mi fornireste l'inidizzo ftp dove posso scaricare il programma,
grazie.
			Gianluca


guarda la mia home page, ci sono diversi link per il compilatore djgpp
---
Ranger, togli .fr dal mio indirizzo per rispondere
http://members.tripod.com/%7Eranger_rg/

Newsgroup: it.comp.lang.c
Titolo: #include <linux/*.h>

Salve a tutti,
non riesco a compilare su linux dei file in C che contengono l'include dell' 
oggetto, perche' ho in output una valanga di errori che sarebbero nei file 
header ?
Per compilare dovrei forse inserire qualche #define prima di includere gli 
header contenuti in /usr/include/linux ? Se si quali?
Grazie
-- 
\>           A(t-t°)
W(t, t°)=e^

Devi installare i sorgenti del kernel sotto la directory /usr/src/linux.
Con la Suse che utilizzo io devo poi dare i seguenti comandi:
#cp /boot/wmlinuz.config /usr/src/linux/.config
#cp /boot/vmlinuz.version.h /usr/src/linux/include/linux/version.h
#cd /usr/src/linux
#make configure
#make dep
Forse e' piu' indicato postare queste domande su it.comp.os.linux.iniziare.
Ciao
Giuseppe
"netx" <j...@Mnemonic.jon> ha scritto nel messaggio
news:iatf9.8012$Oz2.1...@twister2.libero.it...

Newsgroup: it.comp.lang.c
Titolo: Parere monitor 19" Lcd...

Ciao a tutti,
vorrei un vostro consiglio.... vorrei acquistare un monitor da 19" Lcd da
affiancare al mio Lcd da 15"... però sono indeciso tra due modelli:
-Samsung 191T
-Sony S91H
Ho sentito che del Samsung dovrebbe uscire un modello nuovo (192T mi pare),
migliore del 191T... è vero?
Secondo voi, considerando oltre le caratteristiche tecniche anche
l'estetica, quale è preferibile?
Mi deciderò solo dopo aver letto i vostri pareri :-)
Ciao!.

Scusate, ho sbagliato NewsGroup....
Mi dispiace, era aperto questo mentra stavo preparando il messaggio....
Non ci fate caso :-)
Ciao e scusate ancora.

Newsgroup: it.comp.lang.c
Titolo: HELP: puntatori con indirizzi effetttivi

Salve a tutti,
ho interfacciato una ram tamponata esterna ad un micro dell'Hitachi
con flah integrata; tutto il sistema si programma in C con un
compilatore IAR.
Domanda 1: come faccio a caricare in un puntatore un indirizzo reale
scelto da me? Per es. come faccio a creare un puntatore che punti ad
un intero che voglio piazzare alla locazione 0x60000 ??
Domanda 2: in qualche esempio in giro ho trovato la seguente sintassi:
#define xxx (*(volatile int *) (0x60000))
che razza di entità definisco con questa sintassi?
Grazie a tutti
PS: per cortesia rispondentemi via email
         ________
Ciao    /  __   /  ________--------------------------
 Ciao  /  / /__/  /  _____/    Gualtiero Fabbri     /
      /  /  _____/  /__                            /
     /  /__/  __   ___/     
gfa...@racine.ra.it
  /
    /________/ /  /           FAENZA (Italy)     /
              /__/           Phone:0546/46287   /
                     ---------------------------

che razza di entità definisco con questa sintassi?
come dall'esempio che tu stesso riporti: se l'indirizzo che vuoi
utilizzare e' 0x60000:
volatile int  *ptr = (int *)(0x60000);
*ptr = 1; /* mette un 1 alla locazione 0x60000 */
Il volatile serve nel caso il contenuto di quella locazione sia soggetto ad essere
modificato da entita' esterne al tuo programma. Con volatile dici al compilatore di
non memorizzare mai il contenuto della locazione in un registro, ma di andarselo
a leggere ogni volta che viene usato.

Newsgroup: it.comp.lang.c
Titolo: Quale #include per usare mouse?

come da oggetto :
che librerie servono per utilizzare il mouse in un prog. C
==============
In Djgpp non c'è #include windows.h  , dove lo trovo ? sul sito delorie?
============
se vi và  , postate in e-mail
Ciao :-) Roberto


Trovare roba per windows in un compilatore fatto per il dos
sara' un po' difficile...
-- 
------------------------------------
arimicci @@ aritaly. com  .~~~.  ))
                (\__/)  .'     )  ))
  Andrea        /o o  \/     .~
      Rimicci  {o_,    \    {
                 / ,  , )    \     .
 * Developer *   `~  '-' \    } ))
C C++ cgi miva  _(    (   )_.'
Java           '---..{____}
OS/2 Warp Server for Ebusiness admin
--------- OS/2 V5 "Phoenix" --------

 ha scritto nel messaggio
news:8f72co$2e7$3...@lacerta.tiscalinet.it...

Newsgroup: it.comp.lang.c
Titolo: CHI MI AIUTA CON QUESTO PROGRAMMA?

Ciao a tutti. Sto studiando ancora il linguaggio C e sono arrivato al
capitolo sulle stringhe di caratteri . Mi si presenta da fare un programma
per me difficile. Mi aiutereste? Questo č il testo:
Scrivere una funzione che legga due stringhe.Utilizzare la funzione malloc()
per allocare della memoria sufficiente a contenere le due stringhe dopo
averle concatenate. Restituire un puntatore a questa nuova stringa. Ad
esempio, se vengono passate alla funzione le stringhe "Ciao" e "Mondo!", la
funzione deve restituire un puntatore a "Ciao Mondo!". E' facile fare in
modi che il valore concatenato diventi una terza stringa.
Come si fa? Grazie anticipatamente a coloro che mi dedicheranno qualche
minuto


#include <stdlib.h>
#include <string.h>
char* Mstrcat(char *s1, char *s2)
{
 int i, j;
 int dim1 = strlen(s1), dim2 = strlen(s2), dim;
 char *s;
 dim = dim1 + dim2;
 s = malloc(sizeof(char) * (dim + 1));
 for(i = 0; i < dim1; i++)
  s[i] = s1[i];
 for(j = 0; j < dim2; j++)
  s[i++] = s2[j];
 s[i] = '\0';
 return s;
}

 s = malloc(sizeof(char) * (dim + 1));
sizeof(char) e' 1.
Io inoltre proporrei qualcosa di piu' semplice
  char *My_concat(const char *s1,const char *s2)
  {
    int l1 = strlen(s1),
        l2 = strlen(s2);
    char *res = malloc( 1 + l1 + l2 );
    if (res)
    {
      strcpy(res, s1);
      strcpy(res + l1, s2);
    }
    return res;
  }
HTH
Andrea
PS:
  In alternativa si potrebbe usare
      memcpy(res, s1, l1);
      memcpy(res+l1, s2, l2);
      res[ l1 + l2 ] = '\0';
  invece delle due chiamate a strcpy per avere codice
  potenzialmente piu' performante.
--
Andrea Griffini, Programmer
http://www.netservers.com/~agriff

 ha scritto nel messaggio
news:3b2b5dde...@news.interbusiness.it...

Ma cosě facendo non vi esce fuori "CiaoMondo!" invece di "Ciao Mondo!"  ?

Newsgroup: it.comp.lang.c
Titolo: [OT] domanda su un file batch

ho scritto un file batch per usare l'ftp.exe di windows
però vorrei che nel prompt di msdos non si visualizzasse nulla;
l'opzione -v (che serve a non visualizzare le risposte dal server) di
ftp non basta, perchè vengono visalizzate ugualmente 4 righe
ftp>(utente 
it.geocities.com
(none))
ftp>
ftp> put data.txt
ftp>quit
come faccio a non visualizzare nemmen queste 4 righe ?
p.s.:
uso l'ftp con questo comando nel file .bat
@ECHO OFF
ftp -v -s:data1 
ftp.it.geocities.com
per chi non lo sapesse il file data1 contiene i comandi da mandare
all'ftp.exe e -s è l'opzione per usare tali comandi inseriti in un
file di testo (data1).
nel file comandi ci sono 4 comandi:
nome utente
passwrd
put data.txt
quit
Thx per le risposte

 ftp -v -s:data1 
ftp.it.geocities.com
ftp -v -s:data1 
ftp.it.geocities.com
 >nul:
*** Azimuth ***

ftp -v -s:data1 
ftp.it.geocities.com
 >nul:
GRAZIEEEEEEEEEEEEEE !
: )