mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c
Titolo: curiosita' fflush

Sono stato testimone di un curioso problema risolto con un uso della
fflush che non ho proprio capito. Purtroppo non ho codice da postare,
non ero io il programmatore, quindi cerchero' di spiegarmi il meglio
possibili.
Nel problema entrano in gioco i thread, ma la domanda e' sulla fflush,
per questo ho postato qui.
Allora:
Due thread, un produttore e un consumatore.
Il produttore scrive su un file.
Il consumatore legge dallo stesso file.
Ciascun thread usa un proprio stream , esegue una sua propria fopen.
Il produttore, dopo aver scritto sul file, esegue una fflush, per
forzare la modifica.
Il consumatore NON vede la modifica, se prima non esegue anch'egli una
fflush sul proprio stream di input !!!
Ma la fflush non e' definita solo sugli stream di output ?
E' giusto questo modo di procedere (fflush su stream di input) ?
E' dovuto all'uso di due diversi descrittori del file, o forse e' una
peculiarita' dell OS usato (linux) ? (e quindi sono OT :) )
Ciao


E' sicuramente un caso che l'uso di fflush risolva (apparentemente)
il problema.. infatti come dici tu, lo standard dice chiaramente
che l'uso di fflush su uno stream in input produce risultati
indefiniti... quindi anche se se sul sistema in questione il
suo uso porta i risultati sperati, nessuno garantisce che portando
l'applicazione su un altro sistema l'applicazione si comporti
allo stesso modo.
Probabilmente, per andare sul sicuro, bisognerebbe chiudere
riaprire lo stream di input... infatti potrebbe essere che
le funzioni di lettura abbiano un buffer e lavorino solo su
quello senza piu' considerare il contenuto effettivo del file.
A prescindere da quanto detto sopra, usare un file per la
comunicazione fra thread o processi e' una pessima idea.
Esisto le pipe per qualche cosa..
-- 
                Roberto Nunnari -software engineer-
                     mailto:
ro...@nunnisoft.ch
   Residenza Boschetto 12           tel/fax: 
+41-91-6046511
   6935 Bosco Luganese        """    mobile: 
+41-76-3208561
   Switzerland               (o o)
========================oOO==(_)==OOo========================

 Esisto le pipe per qualche cosa..
Si pero' per comunicare tra thread non serve niente, visto che
condividono lo stesso spazio di indirizzamento.
Ciao e grazie

 E' giusto questo modo di procedere (fflush su stream di input) ?
In generale, no.

Grande Roberto.
Però diglielo che esistono anche i file-pipe (mknod()).
(era un complimento)
Newsgroup: it.comp.lang.c
Titolo: Convertire un double in una stringa

Ciao a tutti! Ho provato con la funzione 
char *_ecvt( double value, int count, int *dec, int *sign )
ma non ho avuto il risultato sperato.
Se ad esempio avessi il numero 456,3245 vorrei ottenere
'456,3245' e non '4563245'. Come posso riuscirci? Grazie a
tutti. Sergio

saverio.mola wrote:

<code>
    char stringa[1024];
    double d;
    sprintf(stringa, "%f", d);
    snprintf(stringa, 1024, "%f", d);
</code>
In alternativa considera di usare "%e" e "%g" come stringa di formattazione
per ottenere la rappresentazione in formato diverso.
Se puoi dai uno sguardo alla man page delle funzioni che ti ho indicato per
maggiori dettagli.
-- 
Mox
"Trust the programmer."
"Don't prevent the programmer from doing what needs to be done."
"Keep the language small and simple."
"Provide only one way to do an operation."

 maggiori dettagli.
grazie mille...provvedo

 
wrote:


Newsgroup: it.comp.lang.c
Titolo: variabili a numero di bit elevato e relative operazioni bit a bit

sto' cercando un modo sufficientemente elegante per creare variabili
composte da un numero definito di bit che si aggira intorno a 500, sulle
quali posso effettuare operazioni bit a bit semplici come & ed |.
il problema e' che non riesco ad ottenere risultati soddisfacenti se non
spezzando la variabile in parti piu' piccole, cosa che a dire il vero non
desidererei fare.
ogni consiglio sulle possibilita' di come poter procedere e' bene accetto.
grazie in anticipo,
-- 
 


i tipi del C li conosci, presumo. Gli int, i long, i long long,
i double etc.
Non ce  ne sono di 500 bit. Quindi e' inevitabile che li memorizzi 
"spezzettati".
In ogni caso non vedo quale sia il problema nel
memorizzarli, ad esempio, impaccandoli in array di unsigned int
dove ciascun elemento conterra' tipicamente 16 o 32 dei tuoi
bit (a seconda del tuo compilatore).
Fare le operazioni bit a bit su array di bit impacchettati
in questo modo e' ovviamente una cosa facilissima, visto
che basta fare le operazioni sui membri dell'array.
Anche settare o leggere un determinato bit e' facilissimo,
basta usare una maschera opportuna oppure delle operazioni
di shift binario.
Insomma, tutte cose da 1 riga di codice.
Quindi non capisco bene dove sta la difficolta' della cosa.
Casomai spiegati meglio.
ciao,
v.
Newsgroup: it.comp.lang.c
Titolo: Aiuto Dev-c++

Scusate ma ho un problema con dev-c++. Se scrivo un programma in C, anche
stupido es.  x il calcolo del massimo fra 3 numeri, quando lo eseguo, il
programma si blocca e compare la schermata di windows che mi dice:
"Si è verificato un errore nel "nome del programma.exe". L'applicazione
verrà chiusa.
Potrebbe essersi verificata la perdita di dati su cui si stava lavorando".
Come devo fare??? ho provato a disistallare e installare di nuovo sia
Dev-c++ 4 che il 4.9!!! ma il problema rimane...
grazie x l'aiuto


wrote:

Magari se scrivi anche il codice del semplice programmino che hai
fatto e che ti porta a quell'errore è meglio :D

Carla wrote:

Rimane si. La dura vita del programmatore/trice, i programmi bacati non 
sono più quelli degli altri...


la scanf vuole l'indirizzo della variabile, quindi devi mettere:
scanf("%f", &r);
poi metti int main(void) come intestazione del main
e return 0; prima del } della funzione main.



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


alla fine del main() metti
system("PAUSE");
es:
#include <stdio.h>
main()
{
	printf("ciao mondo!\n");
	system("PAUSE");
}
ciao.


wrote:
[CUT]
come ha detto Pippolino, usa
system("PAUSE");
prima del return finale (od ovunque ti serva)
devi includere questo header:
#include <stdlib.h>
Se hai bisogno di chiarimenti chiedi pure ^__^

 >>>allora il codice č questo e serve per calcolare l'area del


 #include <stdlib.h>
#include <cstdlib>
*GROWL*
-- 
sbi

 
ehrm, newsgroup sbagliato cough cough
su questo è giustissimo stdlib.h
-- 
sbi che si scusa

su questo è giustissimo stdlib.h
Ehheheh ok dai non ti faccio sbranare dal mio gatto demoniaco per
questa volta :P

 questa volta :P
non l'avrebbe mai fatto... ho feeling coi gatti :p
-- 
sbi che si guarda intorno

 system("PAUSE");
Si, ma se vuole lavorarci fuori da Windows, avra` belle sorprese.
Complessivamente mi piace piu` la soluzione della variabile non
utilizzata.
-- 
RiK0
Non credo negli schemi non vincenti.

 utilizzata.
int main(void)
{
   ....
   getchar();
   return 0;
}
Non fa mica tanto schifo... :-)
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 system("PAUSE");
Pause è un comando di shell, se non ce l'hai non funziona.

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

/*
  Name: Now()
  Author: Luc@s
  Description: Return the current hour
  Return: times[0] => the hour, times[1] => the minutes
*/
int * now()
{
        time_t t = time(NULL);
        struct tm * tempo;
        /*
        C++ only
                tm * tempo;
        */
        tempo = localtime(&t);
        /*
        C++ only
                 int * times = new int[2];
        */
        int * times = malloc(sizeof(int) * 2);
        times[0] = tempo->tm_hour;
        times[1] = tempo->tm_min;
        return times;
}
E migliorabile???
E standard???
Tnk 1000000000000000000000000

 E standard???
Si
Ciao
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/
Newsgroup: it.comp.lang.c
Titolo: equazione di ricorrenza

ciao a tutti,
mi saoreste dire come passare da un algoritmi alla sua equazione di
ricorrenza tramite il costo logaritmico e il costo uniforme???
grazie mille Luca

ricorrenza tramite il costo logaritmico e il costo uniforme???
se hai una procedura ricorsiva tipo questa: (questa procedura non
ordina un bel niente ma č tanto per fare un esempio...)
void ordina(int array[],i,j)
{
	if (k > 1)
	{
		k = j / 2;
		ordina(array,i,k);
		ordina(array,k+1,i);
	}
}
ha un'equazione di ricorrenza della forma:
c per n <= 1
T(n/2) + T(n/2) + c per n > 1
dove c significa costante, perchč in questo caso facciamo un numero di
operazioni costanti ad ogni passo della ricorsione.
se considerassimo il tempo "logaritmico" dovremmo considerare il costo
logaritmico di ogni operazione. nel caso di prima la if ha un costo
log k, l'operazione k = i / 2 ha costo log i quindi nel caso peggiore
la c di prima diventa log n dove n č la dimensione dell'array.
Newsgroup: it.comp.lang.c
Titolo: programmare da linux

volendo programmare sotto linux...come si fa?
Il compilatore che ho, e credo sia uno standard, è il gcc (ma vale anche per
il c!?)...ma poi come si usa? il file.c le creo con vi?
thx
Byez
B@STI


I'm not prejudiced, I hate everyone equally.

Newsgroup: it.comp.lang.c
Titolo: Beta tester




Si, ma solo se rendi disponibile il codice dal quale poi compilarmi 
autonomamente l'applicazione.
Ciao

Mi sa che non vedrai mai nulla.

 
Perche' pensi cio' ?
Ciao

Newsgroup: it.comp.lang.c
Titolo: cerco un compilatore c o c++ gratis





cerco un compilatore c o c++ da scaricare gratis... 
dove posso trovarlo? quale è il migliore in circolazione che sia disponibile da 
scaricare?



djgpp. non so pero' dove scaricarlo, io mi sono affezionato a linux.

 djgpp. non so pero' dove scaricarlo, io mi sono affezionato a linux.
www.delorie.com
.
EMG

Anche io sono un affezionato linux e per compilare sotto win uso cygwin che
non e' altro che un porting sotto win degli strumenti di programmazione di
linux tra cui gcc...
Cercalo in  
http://freshmeat.net
Max <max_a...@yahoo.itNOSPAM> wrote in message
8nuh6q$gga$1...@pegasus.tiscalinet.it...


 wrote in message
HPQp5.138981$dF5.2...@news.infostrada.it...


Altrimenti può scaricare BC 5.5 a linea di comando.
è gratis pure quello
Ettore
--
.·::·._.·::·._.·::·._.·::·._.·::·._.·::·._.·::·._.·::·.
Bytecode - Application Service Provider
www.bytecode.it
Risorse gratuite,  tech tips e tutorial per programmatori,
grafici e webmaster.
Web hosting, web housing, web design ed ecommerce
per le aziende che vogliono crescere.
Iscriviti alla mailing list per gli aggiornamenti sul
contenuto del sito
.·::·._.·::·._.·::·._.·::·._.·::·._.·::·._.·::·._.·::·.

 wrote in message
nJat5.8457$_U1.1...@news.infostrada.it...

Newsgroup: it.comp.lang.c
Titolo: Mi aiutate a capire questa funzione ricorsiva?

Da Byron S. Gottfried -- Programmare in C, McGraw-Hill
Il seguente programma permette di risolvere il gioco delle "Torri di 
Hanoi" con un numero qualunque di dischi. Il gioco si svolge con tre 
paletti e alcuni dischi di diverso diametro. All'inizio del gioco i 
dischi sono impilati a piramide sul paletto di sinistra:
     |           |          |
     |           |          |
     _           |          |
    ___          |          |
   _____         |          |
  _______        |          |
     |-----------------------
scopo del gioco è trasferire i dischi dal paletto di sinistra a quello 
di destra; non si può mettere un disco su un altro di diametro più 
piccolo e si può spostare un solo disco per volta.
E' possibile risolvere il problema con questa funzione:
void transfer(int n, char from, char to, char temp)
// n = numero di dischi
// from = origine (paletto a sinistra)
// to = destinazione (paletto a destra)
// temp = paletto centrale
{
	if (n>0) {
		transfer(n-1,from,temp,to);
		printf("Sposta il disco %d da %c a %c\n",n,from,to);
		transfer(n-1,temp,to,from);
	}
	return;
}
abbinandola a una opportuna main() che chieda all'utente il numero dei 
dischi ed effettui una chiamata alla funzione transfer di questo tipo:
transfer(n,'S','D','C');
dove S, D e C sono rispettivamente il paletto a sinistra, centro e destra.

 Hanoi"
*esattamente*, cosa non hai capito?
comunque l'idea di base e': per spostare n(>1) dischi dal paletto 1 al
paletto 3, sposta i primi n-1 dischi piu' in alto nel paletto 2 (chiamata
ricorsiva), quindi sposta il disco piu' basso nel paletto 3, quindi sposta
gli n-1 dischi dal paletto 2 al paletto 3 (chiamata ricorsiva).
-- 
Under construction

 ha scritto nel messaggio
news:MoLzg.59696$_J1.6...@twister2.libero.it...

Tra l'altro la funzione
void transfer(int n, char from, char to, char temp)
// n = numero di dischi
// from = origine (paletto a sinistra)
// to = destinazione (paletto a destra)
// temp = paletto centrale
{
if (n>0) {
transfer(n-1,from,temp,to);
printf("Sposta il disco %d da %c a %c\n",n,from,to);
transfer(n-1,temp,to,from);
}
return;
}
è palesemente inefficiente dal punto di vista delle chiamate di funzione.
Ne vengono effettuate
    2**(n+1) - 1
quando ne bastano
    2**n - 1
con la seguente, si suppone n >= 1:
/* n >= 1 */
void transfer(int n, char from, char to, char temp)
{
        if (1==n) {
                printf("%c --> %c\n",from,to);
        } else {
                transfer(n-1,from,temp,to);
                printf("%c --> %c\n",from,to);
                transfer(n-1,temp,to,from);
        }
}
Tra l'altro esistono versione iterative del problema
che permettono di evitare l'overhead delle chiamate
di funzione, ma il numero di operazioni è comunque O(2**n)
come complessità in tempo.
--
Giorgio Silvestri
DSP/Embedded/Real Time OS (RTOS) Software Engineer
Newsgroup: it.comp.lang.c
Titolo: compilatore DJGPP

Salve a tutti
il mio compilatore fa i capricci..
quando vado a scrivere nell'ambiente rhide le parentesi graffe aperte o
chiuse con alt+123 od alt+125 si blocca tutto
idem con alt Gr .. mi sapete dire cosa puo' essere successo?
grazie
edoardo

 ha scritto nel messaggio
news:9pm8fv$s9f$1...@nreada.inwind.it...

Grazie Roberto ma nell'autoexec.bat e' tutto a posto
quando premo alt+"qualche tasto" non scrive nulla e si blocca il DGJPP ed
anche uscendovi devo resettare il computer per poter utilizzare
correttamente gli altri tasti.
Con altri compilatori il tasto alt funziona correttamente.

Newsgroup: it.comp.lang.c
Titolo: C e memoria sott Linux

Salve a tutti,
 vorrei tanto capire, come viene gestita la memoria, sotto linux,
vi spiego il mio problema:
ho scritto un piccolo programma in c che alloca semplicemente n byte
di memeoria, aspetta 15 secondi (attesa passiva) e poi esce, dove gli n 
byte, 
li decido da riga di comando. Fino a quando gli facci allocare un cero 
numero 
di byte,
(+ 0 - 130000 byte) alloca sempre 74 kb di memoria, forse perche' quando 
carica il programma, resta una pagina di memoria mezza vuota, e fino a 
quando 
non l'ha completamente riempita, mantiene sempre lo stesso numero di pagine,
e quindi anche di memoria. Dicendo al mio programmino di allocare circa 
132000 byte, la memoria diventa di 75 kb, (ok, ho preso una nuova pagina o 
almeno cosi' sembra),
ma aumentanto ancora ritorna a 74 kb!!!!! PERCHE' !!!!!!!
Grazie mille a tutti!!!!
      \ | /
    (@ @)
-o00-(_)-00o------------------------------------------------------------------------------------------------
Benedetto Santarella
--------------------------------------------------------------------------------------------------------------
 Home Page ==> 
http://utenti.lycos.it/santarellawebmaster/index.html
 Email :  ( Per scrivermi togli -NOSPAM- )
           Benedetto.Santarella@-NOSPAM-libero.it         
           benny_sa@-NOSPAM-freemail.it
           Santarella@-NOSPAM-vizzavi.it                 
           benedetto.santarella@-NOSPAM-genie.it

  vorrei tanto capire, come viene gestita la memoria, sotto linux,
dovrebbe essere questo lo scopo del progetto (punto 1 e 2)...
cmq, basta leggere il "advanced linux programming" e trovi molte
più risposte di quante domande riusciresti a fare ;-)
ciao
(ps. canale informatica o tecnologie?)
-- 
By_Baitch
"Live Your Life!" (Ring ain't a jail)
http://utenti.tripod.it/baitch

 (ps. canale informatica o tecnologie?)
Tecnologie
Newsgroup: it.comp.lang.c
Titolo: lettura dati da porta IR

Qualcuno può dirmi come leggere da porta Infrarossi uno stream inviato da un
normale telecomando (Tv, stereo...)?
Evitando il polling (si perdono dati, in base al momentaneo impegno della
CPU) ma magari tramite system call bufferizzate. Ho prova
--------------------------------
Inviato via 
http://usenet.libero.it

Qualcuno può dirmi come leggere da porta Infrarossi uno stream inviato da un
normale telecomando (Tv, stereo...)?
Evitando il polling (si perdono dati, in base al momentaneo impegno della
CPU) ma magari tramite system call bufferizzate. Ho provato un po' di tutto,
ma niente.
Grazie in anticipo.
Haxl


Qui si parla di C. Per una questione come questa devi andare su ng 
riferiti ai vari sistemi operativi, o comunque piattaforme di sviluppo.
Ciao
Luigi

Non volevo essere [OT] ma chiedevo effettivamente uno stralcio di codice C
per risolvere il mio problema.
Se puoi essermi utile rilancio la mia richiesta, altrimenti grazie lo
stesso!


Newsgroup: it.comp.lang.c
Titolo: subscripted value is neither array nor pointer

Ho un problema di compilazione, gcc su freebsd 4.10 mi da l'errore
"subscripted value is neither array nor pointer", cosa significa?
Vi metto una parte del codice
Vi ringrazio per l'aiuto
int port;
struct {
int status; /* last failed connection attempt */
int acl; /* which clients can use this server */
int port;
struct in_addr addr;
int c; /* connections */
int maxc; /* max connections, soft limit */
int hard; /* max connections, hard limit */
unsigned long long sx, rx; /* bytes sent, received */
} *servers;
static void setaddress(struct in_addr *a, int *port, char *s,
int dp, int *maxc, int *hard);
char server_dest[16];
setaddress(&servers[server].addr, &server[server].port,
server_dest, port,&servers[server].maxc,&servers[server].hard);

 server_dest, port,&servers[server].maxc,&servers[server].hard);
L'unica cosa che vedo e` una 's' mancante al 'servers' del secondo
parametro.
Luca
-- 
Home: 
http://kronoz.cjb.net
Software is like sex; it's better when it's free.
Linus Torvalds

 --
Grazie mi sa che e' proprio quello l'errore, a volte si perde tanto
tempo per delle cose cosi' banali.
Newsgroup: it.comp.lang.c
Titolo: standard file

Come posso ottenere il descrittore dei file stdin, stdout?
Di solito si dovrebbe utilizzare una open :
open("file", .......);
però non consco la stringa che caratterizza stdout e stdin.



Perche' non usi semplicemente stdin/stdout o stderr ??
#include <stdio.h>
int main()
{
  fprintf(stdout,"Hello, world.\n");
  return 0;
}
HTH
Andrea
--
Andrea Griffini, Programmer
http://www.netservers.com/~agriff

> Perche' non usi semplicemente stdin/stdout o stderr ??
In verità vorrei sovrascrivere il decrittore si stdout, stdin  con il
descrittore di un altro file, per la redirezione dell' input / output.
Grazie
Alberto

descrittore di un altro file, per la redirezione dell' input / output.
Se programmi sotto UNIX, dai una occhiata a dup() e dup2()
--
Marco Iannaccone     
marc...@tin.it
ICQ: 18748121           Tolkien
"I've... seen things you people wouldn't believe. Attack ships on fire off
the shoulder of Orion.
I watched C-beams... glitter in the dark near the Tanhauser Gate. All
those... moments will be lost... in time..., like... tears... in... rain."

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

Salve ragazzi,
potreste dirmi come fare scrivere un programma che prenda in input il lato
di un quadrato e mi disegni quest'ultimo??
Ad esempio se io immettettessi 4 come lato, il programma dovrebbe
visualizzare:
*  *  *  *
*          *
*          *
*  *  *  *
grazie.....

 grazie.....
#include <stdio.h>
int main()
{
  int i, j, n;
  printf("Inserisci un numero\n");
  scanf("%d",&n);
  for (i=0; i<n; i++)
    printf("*");
  printf("\n");
  for (i=0; i<(n-2); i++)
  {
    printf("*");
    for (j=0; j<(n-2); j++)
      printf(" ");
    printf("*\n");
  }
  for (i=0; i<n; i++)
    printf("*");
  printf("\n");
  return 0;
}
dovrebbe andar bene
-- 
+ me lo - e + vengo - e X nn venir + - nn me lo - +

 ha scritto nel messaggio
news:pan.2002.11.26....@libero.it...

potresti farlo utilizzando solo il ciclo while e if/else??
grazie.
/*/\/\/\/\StProG/\/\/\/\/\*/

 potresti farlo utilizzando solo il ciclo while e if/else??
e ma tu che ci stai a fare?


potresti farlo utilizzando solo il ciclo while e if/else??
Se ci ragioni un attimino sul codice puoi convertirlo usando i
costrutti che vuoi con il minimo sforzo.....
es: for(i=0; i<n; ++i) puo' essere "convertito" in
i=0;
while(i<n)
{
     /* tuo codice */
     ++i;
}
ora tocca a te :)



heheh c,corso completo di programmazione? deitel & deitel?



mi sa di si :)
Newsgroup: it.comp.lang.c
Titolo: Aiuto

Salve a tutti, io ho creato una rubrica telefonica, ma in quest'ultina ci
sono molti contatti, quindi quando faccio la lettura della tabella i
nominativi scorrono veloci. Io ho pensato che ogni 3 contatti la lettura si
fermi e quando premo un tasto + invio continui a scorrere di 3 in 3 fin
quando i contatti non finiscono. Come posso fare?
GRAZIE



utilizzando le ncurses avresti controllo sui tasti e combinazioni vaire,
inoltre potresti scorrere in su e giu' la rubrica
Ciao,
Riccardo

Giuseppe wrote:

L'algoritmo di base e' semplice:
- ti segni il punto di partenza
- ti segni il punto fino a cui stampare (controlla che non passi il 
  massimo)
- stampa l'intervallo
- bloccati finche' non danno l'input corretto
- start = stop, stop = start + step
- riparti
Per darti un esempio un po' piu' concreto (ma non finito e non testato, 
dacci una controllata):
<code>
#define STEP 10;
int start, stop, max=BIG_NUMBER, i;
char * dato[BIG_NUMBER];
/* immaginiamo max settato al massimo numero di entry */
start = 0;
stop = start + STEP;
for (i=0; i<max; i++) {
   for (start;start <= stop || start < max; start++)
       stampa(dato[start]);
   stop = start + STEP;
   while(getchar() != +);
}
</code>
-- 
Mox
"Trust the programmer."
"Don't prevent the programmer from doing what needs to be done."
"Keep the language small and simple."
"Provide only one way to do an operation."
Newsgroup: it.comp.lang.c
Titolo: va_list

Ciao ragazzi,
ho un problema con le va_list.
Invece di scrivere un carattere della stringa che passo scrive tutta la
stringa stessa e al secondo ciclo, crasha il sistema.
Vi do un esempio:
Write(STDERR | ERRORMSG, &bs, "%s | file %s: (%d) %s", lpszFileName,
e.m_cause, szErr);
ecco cosa succede all'interno (versione semplificata):
    va_start(argptr, fmt);
    for (p = fmt; *p; *p++)
    {
        if (*p != '%')
        {
            //fprintf(bs->data.file, "%c", *p);
            if (bs->data.file != NULL)
                putc(*p, bs->data.file);
            else
                bs->data.string[strlen(bs->data.string)+1] = *p;
        }
        else
        {
            *p++;
            switch (*p)
            {
                case 's':
                    s = va_arg(argptr, char *);
                    if (s == NULL) break;
                    if (bs->data.file != NULL)
                        putc(*s, bs->data.file);
                    else
                        bs->data.string[strlen(bs->data.string)+1] =
*s;
                break;
            }
        }
    }
    va_end(argptr);

                bs->data.string[strlen(bs->data.string)+1] = *p;
La prima cosa che salta all'occhio ? questa.
Se bs->data.string non ? inizializzata strlen() porta ad un undefined
behaviour.
Se anche bs->data.string fosse correttamente inizializzata alla prima
iterazione il nuovo carattere verrebbe inserito *dopo* il terminatore di
stringa (2 posti dopo l'ultimo carattere tra l'altro).
Tieni un indice per indicare il prossimo posto libero, e termina la
stringa alla fine del ciclo:
int cur = <whatever>;
for(...) {
        ...
        bs->data.string[cur++] = *p;
        ...
}
bs->data.string[cur++] = '\0';
(magari controllando di non sforare dallo spazio allocato.
Luca
-- 
Home: 
http://kronoz.cjb.net
E' bene ricordare che l'intero Universo ? formato,
con un'unica trascurabile eccezione, dagli "altri".
John Andrew Holmes

 La prima cosa che salta all'occhio ? questa.
Grazie per la precisazione ma, purtroppo, il problema non sembra
proprio questo in quanto attualmente sto sviluppando l'altra parte del
codice, ovvero quella che scrive dentro al file e non alla stringa.
Cmq grazie :)
Newsgroup: it.comp.lang.c
Titolo: fread()&fwrite() con le liste?





Sarà forse un errore banale ma non riesco 
prorpio a risolverlo!!!!


 


Il mio problema è questo:


 


 


 


 


Nel mio proggetto per l'esame di Laboratorio 
c'è l'header-file che inizia cosi':


 




enum bool{SI,NO};


 


typedef char * Stringa;


 


typedef struct _Coord{


    int x;


    int y;


}Coord;


 


typedef struct CasellaTesto *CasellaTesto_Ptr;


typedef struct CasellaTesto{


    int NumID;


    Coord Pos;


    Stringa Testo;


    bool Bordo;


    CasellaTesto_Ptr Link;


};


typedef struct Scheda *Scheda_Ptr;


typedef struct Scheda{


    int NumID; 


    Coord Pos; 


    bool Bordo;    



    CasellaTesto_Ptr EditBox;


    Scheda_Ptr Link;


};


Scheda_Ptr Form;


 


Come si vede c'è una lista chiamata "Form" che 
all'interno contiene un altra lista "EditBox".


Io ho implementato tutte le funzioni di 
inserimento nuovo form, inser. nuova EditBox, ricerca Form,Editbox 
ecc..


Fin qui il programmino va troppo bene ma 
non salva e carica i dati!!!!!


 


 


Ho usato le funzioni fread() e fwrite() in 
questo modo:


 


 


 


void SalvaSchede(Scheda_Ptr sc) 
/
* chiamo la funzione in questo modo SalvaSchede(Form); 

*/
{
   FILE *stream;


 


   if ((stream = 
fopen("prova.xxx", "w")) == NULL) 
   {
   
fprintf(stderr, "Errore nell'apertura del file.\n");


 


   }
   
fwrite(&sc, sizeof(sc), 1, stream); 
   fclose(stream); 

}


 


Scheda_Ptr 
CaricaSchede(void) /*chiamo la funzione in questo modo: 
Form=CaricaSchede();*/
{
 FILE *stream;
 Scheda_Ptr 
sc;


 


 if ((stream = 
fopen("prova.xxx", "r"))
  == 
NULL)
 {
    fprintf(stderr, "Errore nell'apertura del 
file.\n");
 }


 


 fread(&sc, sizeof(sc)+1, 1, 
stream);
 fclose(stream);


 


 return 
sc;
}


A questo punto 
se chiamo le due funzioni non riesco a combinare niente
.


Quando carico mi compare il primo Form a volte 
anche con le stringhe contenute nelle EditBox ma se cerco di scorrere la 
lista si blocca tutto e devo riavviare.


 


DOMANDA: Come 
devo impostare le due funzioni(fwrite e fread) per la scrittura e lettura 
di una lista??


 


Grazie in anticipo!


 


                                            




 }
Se la variabile sc è già un puntatore non devi prenderne l'indirizzo e
quindi:
fwrite(sc, sizeof(sc), 1, stream);
EMG

 fwrite(sc, sizeof(sc), 1, stream);
"famo"
fwrite( *sc, sizeof( *sc ), 1, stream )


No, fwrite() si aspetta un puntatore, non puoi passargli un valore, che
è quello che ottieni dereferenziando il puntatore sc.
EMG
Newsgroup: it.comp.lang.c
Titolo: EOF

Ciao a tutti.
Da pochi giorni ho iniziato lo studio dell'Ansi C.
Tra gli esercizi svolti dall'autore del libro vi è il seguente:
#include <stdio.h>
main()
{
    int c;
    c=getchar()
    while (c!=EOF)
           {
              putchar(c);
              c=getchar();
            }
   }
Quali caratteri o combinazioni di tasti devo immettereper ottenere
l'uscita dal ciclo while?

l'uscita dal ciclo while?
Humm... innanzitutto quello che l'autore scrive non mi piace molto :
#include <stdio.h>
int main()
{
    int c ;
    while ( ( c = getchar() ) != EOF ) 
          putchar( c ) ;
    return 0 ;
}
Questa e' una forma piu' elegante.
La combinazione per EOF dipende dal tuo s.o. ed e' CTRL+Z sotto
Windows/DOS e CTRL+D sotto Unix/Linux.
 
--
Andrea Laforgia (
andrea_...@bigfoot.com
)
--------------------------------------------------------------
"Partire e' un po' morire e morire e' partire un po' troppo !"
--------------------------------------------------------------

 l'uscita dal ciclo while?
Dipende dal sistema operativo. Sotto MS-DOS è CTRL-Z.
EMG

Newsgroup: it.comp.lang.c
Titolo: tutti i cammini passanti per un certo numero di nodi

Salve
Ho un grafo orientato aciclico, un certo numero di sorgenti, un certo numero
di foglie, e dati x nodi voglio trovare tutti i cammini da sorgente a
foglia passanti per tutti gli x nodi. Quindi un cammino e valido, se parte
da una sorgente, arriva ad una foglia, a pasa per tutti gli x nodi. 
grazie

 da una sorgente, arriva ad una foglia, a pasa per tutti gli x nodi. 
Tienilo a mente!
Ciao Max
-- 
+-----------------------------------------------------------+
| Secondo alcuni autorevoli testi di tecnica Aeronautica,   |
| il calabrone non può volare, a causa della forma e del    |
| peso del proprio corpo in rapporto alla superficie alare. |
| Ma il calabrone non lo sa e perciò continua a volare.     |
|					     Igor Sikorsky  |
+-----------------------------------------------------------+

 
volevo solo ringraziarti per l'immenso aiuto che mi hai dato... continua
pure cosi'...

> |      Igor Sikorsky  |
Mi sembra che manchino un po' di spazi, credo che dovrebbe essere cosi'
(comunque carino:):


Dijkstra ?

 Dijkstra ?
l'unico dijkstra che conosco e' quello per cammini minimi... e non e quello
che fa per me. o almeno credo
Newsgroup: it.comp.lang.c
Titolo: VC++ e OpenGL

Ciao, ho un'altra domanda da porvi...
nel mio programma (in C) devo inserire delle immagini che richiedono le
librerie OpenGL. Mi hanno detto però che queste librerie sono supportate
solo dal compilatore VisualC++. Sapete dirmi se è vero? e nel caso, esiste
la possibilità di scaricare VC++ dalla rete, cioè una versione free?
grazie ancora per l'aiuto.
ciao,
willim

 la possibilità di scaricare VC++ dalla rete, cioè una versione free?
Versione Free di roba microsoft??? ;))))))))))))
Te la sogni... eheheh
(magari warez ^_^ no dai, scherzo ^____^)
Dome

 ed è molto flessibile.
Ti ringrazio per le risposte Dome. Sul discorso microsoft son d'accordo,
immaginavo infatti.... ma c'ho provato lo stesso :-)))
Riguardo l'OpenGL approfitto invece per chiederti anche se sai quale
compilatore posso usare che ne riconosce le librerie o + in generale se c'è
qualche ambiente di sviluppo per OpenGL scaricabile da rete...
grazie ancora.
ciao,
william


 qualche ambiente di sviluppo per OpenGL scaricabile da rete...
Praticamente, qualunque compilatore generi programmi compatibili con Win32
può utilizzare OpenGL. Te ne consiglio un paio (secondo me due dei migliori
compilatori free): LCC-Win32 e DevC++
Dome

Newsgroup: it.comp.lang.c
Titolo: Software per la documentazione di sorgenti

Salve a tutti
Stò valutando del software per la realizzazione di manuali in formato
RTF/HTML/CHM
che leggono i sorgenti C/C++ e creano automaticamente testi di aiuto.
Attualmente
stò valutando DOC-O-MATIC e mi sembra molto interessante.
Qualcuno di Voi usa software di questo tipo ?
Quali ?
Come vanno ?
Grazie
Daniele Banfi

creano automaticamente testi di aiuto.
doxygen 
http://www.stack.nl/~dimitri/doxygen
doc++ 
http://docpp.sf.net
-- 
+---- | Un OS per domarli, Un OS per trovarli,             |  -o)
+---+ | Un OS per ghermirli e nel buio incatenarli         |  /\\
 O  | | Nella terra di Redmond, ove l'ombra cupa scende... | _\_V
                    raffaele punto salmaso presso libero punto it

Quali ?
http://www.doxygen.org/index.html
-- 
Tieni per te il Papero giusto se vuoi la mia email
Sito Papero -> 
http://utenti.tripod.it/papero
Newsgroup: it.comp.lang.c
Titolo: [newbie] aiuto per espressioni regolari in c

salve a tutti,
    dovrei convertire questa espressione regolare all'interno di una
funzione in c:
sed -ne '/'Fax'/{s/^.*'Fax' : *//g;s/[()]//g;s/[^0-9]\{1,\}.*^M$//g;p;q;}' <
nomefile
e' presa da uno script bash ma non saprei proprio dove sbattere la testa per
eseguirla da codice....
qualcuno puo' illuminarmi?
ho provato con regexec ma l'espressione proprio non gli piace :/
grazie 1000
Dade

 eseguirla da codice....
Questa rioba non e' una regexp (almeno, non solo). sed (lo stream editor
sotto Unix), legge dall'input che gli vene dato dopo il carattere '<'
(ridirezione
dell'input) e fornisce in output qualcosa che inizia con Fax e contiene il
testo
letto in input a cui sono stati tolti
- tutti i caratteri seguiti da "Fax :" con un qualsiasi numero di spazi
bianchi
  (ASCII 0x20h) dopo ':'; (s/^.*'Fax' : *//g;)
- tutte le parentesi tonde; ( s/[()]//g;)
- tutte le righe che iniziano con almeno una cifra e terminano con ^M
  s/[^0-9]\{1,\}.*^M$//g;p;q;
g, p, q sono sei flag che modificano il comportamento di default della
substitute (s/regexp/substitution string/) di sed, ma non ne conosco
il significato.
Ti consiglio di rivolgerti a qualche NG relativo allo sviluppo di Unix
(tipo it.comp.linux.development) e di cercarti in rete un tutorial si sed.
HTH
C:\>iao Angelo
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 C:\>iao Angelo
ok, ci provo :)
grazie 1000 Angelo
Dade
Newsgroup: it.comp.lang.c
Titolo: differenza?

Salve!
Che differenza c'è fra
typedef struct
{
	int x;
	int y;
} punto;
e
struct punto
{
	int x;
	int y;
};
Grazie!
matteo

 };
Hai dichiarato una struttura di nome punto, ma
per utilizzare il nome devi usare la keyword struct
quando definisci la variabile.
int dot(void)
{
    struct punto p;   // punto è un template della struttura
    p.x=0;
    p.y=0;
}
C'e' chi non ama le typedef perchè ritiene che nascondano
troppo dietro il nome, invece io le uso proprio a quello
scopo. Vanno usate con moderazione dove servono, magari
adottando delle convenzioni in fase di dichiarazione,
ad esempio prefissi e/oi suffisi nel nome da utilizzare,
in modo che diventi piu' chiaro che si tratta di un alias
typedef struct{
     int pippo;
     int pluto;
     void* cb
}MYTYPE_T;
    MYTYPE_T    myType;  // Nuovo 'tipo'
Ci sono dei 'tipi' che sono realizzati come typedef,
e utilizzati per rendere più portabile un codice:
ad esempio su una piattaforma a 16 bit un intero
sara' (probabilmente) un 16bit, mentre su una piattaforma
a 32bit sara' di 32bit... ma se un determinato software
vuole avere la certezza che un tipo di dato sarà interpreatato
sempre come un 16 bit, puo' fare riferimento ad alcuni 'tipi'
come uint16_t che probabilmente saranno dichiarati via typedef
piu' o meno nel modo seguente:
// Piattaforma 16 bit
typedef uint16t    unsigned int;
typedef uint32t    unsigned long;
// Piattaforma 32 bit
typedef uint16t    unsigned short;
typedef uint32t    unsigned int;
poi nel codice si usera'
    uint16_t   d16;   // 16bit data
    uint32_t   d32;   // 32bit data
B.

 
Ciao e grazie!
matteo

 dev-c++ me lo compila senza problemi... perchè?
Perche' hai definito da qualche parte la typedef punto
e ti sei scordato di toglierla dal codice ? :-)
B.

Matteo D. ha scritto:

Non è che stai compilando codice C++ invece che C?
E.

 E.
Grazie!
matteo
Newsgroup: it.comp.lang.c
Titolo: Typedef e struct

Salve ragazzi, vorrei creare una libreria che sia in grado di gestire le 
liste.
Ora ho un file provafun.c che contiene il main ed i prototipi delle funzioni 
presenti nel file fun.c
per esempio se nel file provafun.c
faccio una cosa tipo:
struct record {
    char val
    struct record * next;
};
typedef struct record Record;
typedef Record *RecordPtr; /* Puntatore a struct record */
con i prototipi delle funzioni di gestione di una lista che non scrivo.
/*
     Prototipi
    ----------
    ----------
*/
e l'implementazione delle suddette funzioni.
Adesso nel file fun.c ho le definizioni di tutte le funzioni.
Solo che quando vado a compilare
con cc -ansi fun.c provafun.c -o liste
mi da diversi errori di variabili non dichiarate.
Mi sono accorto che sono tutte le variabili di tipo definite con il typedef. 
Come posso scavalcare il problema?
Spero di non essere troppo banale...Grazie a tutti 

 mi da diversi errori di variabili non dichiarate.
Sarebbe bene indicare gli errori, non abbiamo la sfera di cristallo ;)
Dai pezzi di codice che riporti direi che gli errori sono nel file
fun.c. In questo file, infatti, non sono visibili la dichiarazione della
struct ed i typedef relativi.
Comunemente la libreria viene divisa in:
- header con funzioni e tipi di dato pubblici
- implementazione
in modo che l'header possa essere incluso dall'implementazione della
libreria e nel file in cui vengono usate le funzioni.
Nel tuo caso dovresti avere:
--- provafun.h
#ifndef PROVAFUN_H
#define PROVAFUN_H 1
struct record {
        ....
};
typedef ....;
/* Tutti i prototipi delle funzioni */
#endif
--- provafun.c
#include "provafun.h"
/* Implementazioni delle funzioni */
--- fun.c
#include "provafun.h"
int main(void) {
        /* Uso delle funzioni */
        return 0;
}
Luca
-- 
Home: 
http://kronoz.cjb.net
Alcuni pensano che io sia una persona orribile, ma non e` vero. Ho il
cuore di un ragazzino - in un vaso sulla scrivania.

Newsgroup: it.comp.lang.c
Titolo: Prototipo funzione...

Ciao a tutti!
Ho una domanda da porvi sul prototipo di una funzione...
C'e' differenza nello scrivere:
GList *inizializza_lista (GList *lista);
e
GList *inizializza_lista (GList *);
Qual e' il metodo stilisticamente piu' corretto?
Ciao e grazie
Aragorn

 ha scritto nel messaggio
news:44ccd0fb$0$30235$4faf...@reader1.news.tin.it...

Io preferisco la prima. Gusti.
E' ancora più documentato!
Pensa al seguente:
void calc_something(int,int,int,float,double);
non si capisce niente cosa vogliono dire i parametri.
--
Giorgio Silvestri
DSP/Embedded/Real Time OS (RTOS) Software Engineer

 non si capisce niente cosa vogliono dire i parametri.
Hai perfettamente ragione! Grazie del chiarimento
Ciao
Aragorn
Newsgroup: it.comp.lang.c
Titolo: Aiuto STACK

Chi di voi puo inviarmi un programmino quanto più semplice possibile per
farmi capire come si usa lo STACK in modo pratico e spiegarmi a cosa può
servine visto che non ne capisco l'esigenza?
Grazie mille
                Carlo
P.S. ho notato che non tutti sanno usare gli STACK e allora ho pensato che
il motivo è proprio perchè non viene mai usato, quindi: è inutile.



 il motivo č proprio perchč non viene mai usato, quindi: č inutile.
   Pensa che io ho notato che non tutti sanno usare l'INTELLIGENZA ed 
allora ho pensato che il motivo e` proprio perche` non viene mai usata: 
e` inutile.
-- 
Veri pirati noi siamo       Ma cosa c'e` di male?
Contro il sistema lottiamo  Ma cosa c'e` di strano?
Ci esercitiamo a scuola     Facciamo un gran casino
A far la faccia dura        Ma in fondo lavoriamo
Per fare piu` paura         Per capitan Uncino


credo che l'uso dello stack nel senso stretto del termine é qualcosa di un pò
''brutto'' da fare...
lo stack é una memoria che viene utilizzata dal processore per permettere nell'ambito
di un processo lo scambio di informazioni, salvataggio di dati temporanei, creazione di
variabili.... normalmente chi alloca la memoria dinamicamente chiede al s.o. di allocare
memoria nell'heap ..... ovvero in quell'area di memoria marcata come libera dal s.o.
ricordati che per usare lo stack ..... devi scendere a dialogare con la macchina o col s.o.
quindi realizzi qualcosa di specifico alla piattaforma.....
se poi vuoi utilizzare l'allocazione dinamica ..... e fingere di avere uno stack ....
allora non devi far altro che limitarti alle code
cod

Lo stack è una memoria di tipo LIFO (Last In First Out), ovvero funziona
come una pila di piatti, per fare una pop (ovvero l'estrazione di un
piatto), devo prima avercelo messo con una push, e quando estraggo prendo il
primo elemeto.
Potrebbe sembrare non avere molta utilià, ma una memoria di questo tipo
torna molto utile quando si richiamano delle procedure o delle funzioni
ricorsive, infatti i parametri o i risultati a seconda dell'architettura
della macchina e dell'os, vengono memorizzati nello stack per essere ripresi
successivamente


mi sembrano interessanti la frase
"*p++=val     /*Mette val in cima allo stack*/
    val=*--p   /*Preleva il top dello stack e lo assegna a val */ "
e le funzioni
#include <stdio.h>
#define MAXVAL 100
int sp=0;
double val[MAXVAL];
/* push: inserisce f in cima allo stack */
void push(double f)
{
if(sp < MAXVAL) val[sp++]=f;
else
 printf("Errore, stack pieno: %g non inseribile\n", f);
}
/* pop: preleva e ritorna il valore del top dello stack */
double pop(void)
{if(sp>0) 
       return val[--sp];
 else {printf("Errore: lo stack è vuoto\n");
          return 0.0;
        }
}
Newsgroup: it.comp.lang.c
Titolo: Accedere ai database

Vorrei imparare ad accedere ai database di ACCESS ad esempio , pero'
usando solo codice C,C++ .
Il fatto e che non posseggo ADO ,ne MFC , e per i miei piccoli
programmi  la programmazione tramite API win32
Non vorrei spendere cifre esagerate nell'acquistare particolari
compilatori in quanto non sono un professionista ma un semplice
appassionato . Uso allo scopo il Borland Builder 3 ver. standard , non
uso le VCL in quanto mi stanno un po sulle "balle".
E' possibile reperire in rete materiale free e didattico che mi
insegni DA ZERO ad usare classi e funzioni per poter accedere ai
database ?
grazie

 wrote

Sei OT.
Ad ogni modo, quick answer: Scarica MySql e' un ottimo database server
"freeware" (per te). Poi scarica le mysql++ che sono dei file che ti
permettono di interfacciarsi con il database dal C++ (hanno anche una
documentazione). Se vuoi access, non conosco un metodo senza utilizzare le
features microsoft!
Guarda  in rete o meglio posta su un NG adatto dove sicuramente sapranno
darti risposte piu' efficaci.
Tommy

Newsgroup: it.comp.lang.c
Titolo: Codice sorgente

Com'è il codice sorgente in c, per cancellare un file?
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

Prova:
remove("nomefile.estensione");
devi includere stdio.h o io.h

 o io.h
Questo invece non esiste in C standard.


Si, ma se il file in questione si trova in un percorso differente da dove si
trova il programma scritto in C come si deve fare?


 trova il programma scritto in C come si deve fare?
Semplicemente inserisci il percorso intero. Ricordati che se sei sotto 
DOS o Windows devi raddoppiare i backslash (in quanto '\' e` il 
carattere di escape):
     remove("c:\\documenti\\miofile.txt");


Ho provato a fare cosě... Ho usato il devcpp, "empty project in C".
#<stdio.h>
main () {
remove ("c:\\documenti\\miofile.txt");
}
Ma il compilatore mi trova un errore: "invalid preprocessing directive name"
Dove sbaglio?


 remove ("c:\\documenti\\miofile.txt");
Trucco: il dos accetta la / al posto della \, con in più il vantaggio di non
dover raddoppiare la \\ :-) (e pensa, la / è anche usata da Unix/Linux!) :-)
--- bye

 Dove sbaglio?
Sbagli nel non prendere in mano un libro sul C e leggerlo.
#include <stdio.h>
int main(void)
{
     remove("c:\\documenti\\miofile.txt");
     return 0;
}
Newsgroup: it.comp.lang.c
Titolo: Menu' scelte numerate istantanee ?

Salve a tutti,
ho un problema penso abbastanza stupido. Immaginiamo di avere un menu' , con 
delle scelte numerate, come faccio a permettere di selezionare una della 
scelte senza bisogno di premere return dopo aver digitato il tasto 
corrispondente ?

 wrote in message
news:W00K9.12296$lV4.4...@news2.tin.it...

Non esiste una implementazione C standard.
Quasi tutti i compilatori, a seconda del OS su cui girano etc,  metteranno a
disposizione delle funzioni in determinate librerie.
Tu cosa usi?
Tommy


se il tuo compilatore rende disponibile getchar() (solitamente in 
stdio.h) sei a posto :)
Se sei sotto {linux, macosx, *bsd, ...} fai un bel
man getchar

Tommy wrote:

gcc su linux . Comunque io non desidero una implementazione non standard. Mi 
interessa una attesa finche' non viene premuto un tasto, con la 
possibilita' di capire quale tasto e' stato premuto

 man getchar
ma getchar non attende che successivamente al carattere sia premuto invio ? 

 possibilita' di capire quale tasto e' stato premuto
non esiste una implementazione in C standard, mi dispiace!



Fai una piccola funzioncina usando semplicemente kbhit() e getch()
(sono funzione ANSI) in questo modo puoi gestire anche i tasti
funzione F1...F10.
Saluti ekidna

 funzione F1...F10.
Io sapevo che int getchar(void) e standard, cosi' come int getc(FILE
*stream).
getch() non mi sembra standard e ad esempio in VC++ si chiama int _getch(
void ); dove il '_' sta a significare che non e' standard e l'header in cui
e' inclusa e' conio.h!
Tommy

inxs wrote:

Gia', getchar() legge un singolo carattere dal file (speciale) di input 
associato alla tastiera... finche' non premi invio non viene riempito. Al 
contrario anche se non premi invio, ma ci sono dei caratteri da una 
precedente lettura lui li elabora.
Per lavorare direttamente con la tastiera deve utilizzare funzioni che 
iteragiscono direttamente con il terminale a basso livello (oppure una 
qualche astrazione di queste, come le ncurser o le conio).
-- 
Mox
"Trust the programmer."
"Don't prevent the programmer from doing what needs to be done."
"Keep the language small and simple."
"Provide only one way to do an operation."

Tommy wrote:

infatti... intendevo , l'implementazione di una funzionalita' del genere 
mediante la scrittura di una funzione che contenga al suo interno soltanto 
codice standard.

Newsgroup: it.comp.lang.c
Titolo: Passare dati ad Outlook Express

E' possibile inserire un documento nella cartella "in partenza" del
programma Outlook Express da un programma esterno  e senza
attivare Outlook Express ?
In modo tale che, successivamente, l'utente si collega alla rete e trasmette
tutto quello che è in partenza ?
P.S. Cortesemente inviate una copia della risposta tramite Email

attivare Outlook Express ?
Se OE implementa un server OLE, sicuramente si puo' fare.
Chiedi su it.comp.programmare.win32
--
Andrea Laforgia (
andrea_...@bigfoot.com
)
---------------------------------------------
Newsgroup: it.comp.lang.c
Titolo: [newbie] domanda

Salve a tutti avevo una domanda da fare che mi č capitata nella prova
intercorso di LP1
Occupa di piů in memoria il valore 234 in binario, oppure la sequenza di
caratteri "234"
Io ho scelto la seconda. Ho sbagliato?

 
hai scelto bene.
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


Debian GNU/Linux 3.0r0 (Woody)
Linux Registered User #245762 at 
http://counter.li.org

Io ho scelto la seconda. Ho sbagliato?
Non ci sono elementi per decidere. 
Potrebbero benissimo occupare la stessa memoria.

 ha scritto nel messaggio
news:jhrC9.16045$Ka3.4...@twister1.libero.it...

Dipende da come hai motivato la risposta in quanto tutto dipende dal sistema
di memorizzazione.
ciao,
Nids

 di memorizzazione.
Era una domanda a risposta multipla, le scelte erano quelle. :(

anzi, scusate , adesso che ricordo tra le opzioni c'er anche "Dipende dal
sistema operativo " o "dalla macchina" .. non ricordo.
Cmq appena escono sul sito ve le posto
Ciao Paolo

sistema operativo " o "dalla macchina" .. non ricordo.
Era quella giusta.

hai scelto bene.
Non ci sono moltivi per dirlo.

raga lo riusciamo a trovare un accordo comune??
:)
ciao Paolo


Il mio "accordo comune" e' che hai dato la risposta sbagliata, la risposta
giusta era: "dipende dal sistema"
eg:
In un sistema in cui un char == 8 bit "234" occupa 4 x 8 = 32 bit ( c'e'
anche il '\0' ).
Se 234 e' un int a 8 o 16 bit occupa meno, se e' un int a 32 bit occupa
uguale e se infine e' un int a 64 o piu' bit occupa di piu'.
Ovviamente la stringa poteva, anche, essere memorizzata in unicode a 2 o 4
bytes, ma questa e' un'altra storia.
ciao,
Nids
Ps: Non ti preoccupare e facci sapere come ti e' andato il test.