mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c
Titolo: Numero... da arrotondare.

 'The Krazy One'   ::--------
->  "To reign is worth ambition, though in hell."   |  UIN: 21267457  <-
-<  "Better to Reign in Hell Than Serve in Heaven"  | ircnet: krazy98 >-
---** Creditors have much better memories than debtors. **---

decine <5)?
Mi pare che se fosse gia' discusso...
X = floor ( X / 100.0 + 0.5 ) * 100.0 ;

 wrote in message
376f4fd7...@diesel.cu.mi.it...

Perche' scomodare sempre i floating-point?
in fin dei conti per il suo scopo e' molto piu' veloce fare semplicemente:
  long y = 105062
  int  x = ( y + 50 ) / 100; // (ottiene 1051)
ciao
donCiccio

 e in seguito 1047.
Eccoti un esempio che dovrebbe fare quello che chiedi:
#include <stdio.h>
int arrot100( long n )
{
    return ( n + 50 ) / 100;
}
int main()
{
    printf( "%d\n", arrot100( 105062 ) );
    printf( "%d\n", arrot100( 104703 ) );
    return 0;
}
EMG

---** Creditors have much better memories than debtors. **---
Devi usare l' operatore modulo % che ti ritorna il resto della divisione 
intera.
int numero = 105052;
if (numero % 100) > 50
        numero = numero +( 100 - (numero % 100));
else
    numero = numero - (numero % 100);
--
..................,,,,,,,
  ..................(ô ô)
  + ----oOO-- (_) ---------------------------------+
  | esta buena esa :o)
  |
  + --------------------oOO--------------------------+
  .................|__|__|
  ..................||... ||
  ..............ooO ..Ooo

 wrote:
PF>Ciao. Ho un unsigned long che contiene, per esempio, "105062". Da questo
PF>devo arrivare a un int, arrotondato. Ovvero 105062 deve diventare 105100
PF>e in seguito un int contenente 1051, mentre 104703 deve diventare 104700
PF>e in seguito 1047.
In questo caso, mi pare possa andare la semplice
    printf("%u %u\n", (105062UL + 50) / 100, (104703UL + 50) / 100);
Ciao ciao,
Andrea
-- 
"...Unix, MS-DOS, and Windows NT (also known as the Good, the Bad, and 
 the Ugly)."
(by Matt Welsh)

Newsgroup: it.comp.lang.c
Titolo: putc() segmentation fault

Salve a tutti,
ho problemi nella scrittura di caratteri o stringa su un file.
all'apertura dello stream, tutto ok, creao il file in modalità "w",
questa procedura viene esguita correttamente, dato che se vado a
guardare nella cartella dell'applicazione, trovo il file da me creato
("log.txt"), il problema i verifica quando provo a effettuare delle
operazioni di scrittura sullo stream associato a tale file. Ho provato
ad utilizzare sia la funzione putc che la fprintf:
FILE *log;
log = fopen("log.txt","w");
putc('c',log);
questo genera un errore sullo stdio : "segmentation fault".
ho provato anche a sostituire a putc, l'fprintf:
fprintf("log, "prova di scrittura");
l'errore sullo stdio è identico..
sia il file che il programma is trovano su una cartella creata dallo
specifico utente e quindi con tutti i relativi permessi.
IDEE??
grazie,
Daniele

problema risolto.
cera un problema con l'assegnazione del valore al puntatore.
grazie
Daniele-- ha scritto:

Newsgroup: it.comp.lang.c
Titolo: editor

Mi sapete caonsigliare un buon editor per linux di c, mi serve solo per
inserire e modificare il codice. dev'essere:
leggero
supporti i colori per la sintassi (magari anche di altri linguaggi)
da usare su gnome2.4
non sia vim :)
non vi ho chiesto l'impossibile
Ho provato con Kate (Kde) e gedit(gnome), ma sinceramente non mi trovo
molto bene...
voi che usate?
Ciao!
-- 
Linux Registered User #327417
Powered by Debian Sid +  Gnome2.4

 non sia vim :)
www.scintilla.org/SciTE.html
-- 
Lawrence "Rhymes" Oluyede
http://loluyede.blogspot.com
rhy...@NOSPAMmyself.com

 da usare su gnome2.4
jed è per shell ma lo puoi utilizzare da terminale X di gnome
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
-----------------------------------------------------------

 anjuta.
Grazie!


 inserire e modificare il codice.
Nedit
IMHO, ti conviene in ogni caso imparare ad usare almeno un po' vi &
derivati: indispensabile se hai problemi con l'ambiente grafico o questo
manca totalmente...
-- 
 Ciao, Bianco.
|--------[Powered by Debian GNU/Linux Sarge - 2.4.19 - AMD K6-200]--------|
|------------[Linux Registered User #287769 - Machine #169192]------------|

 manca totalmente...
Si beh tranquillo, ovviamente vim lo conosco bene, altrimenti addio... :D
Volevo un editor da usare in grafica, e per ora con Anjuta mi trovo bene,
ciao!


Newsgroup: it.comp.lang.c
Titolo: piccola curiosità su valori di ritorno

ieri ho scaricato ed installato il dev-c++ e, siccome sono in periodo di 
esami di maturità e la volgia di studiare se n'è andata col caldo, ho 
fatto qualche prova con dei semplici programmi. Ora, ho curiosamente 
notato che usando void come valore di ritorno per la funzione main() il 
compilatore segnala un warning perchè si aspetta un int al posto del 
void. Niente di preoccupante, ma mi piacerebbe sapere se è una regola 
imposta dal compilatore o se invece esso si attiene a qualche standard 
tipo C99.
Leonardo

:

Che io sappia e' obbligatorio almeno dal c89 (non ho mai studiato
molto il preansi), per /compatibilita'/ verso il sistema operativo
sottostante che deve poter controllare la terminazione dei programmi.
Questo pero' non e' un errore tale da impedire la compilazione del
programma, quindi il compilatore in genere ti insulta, ma non te lo
impedisce... avrai pero' dei problemi se cerchi di lanciare il
programma e controllarne la terminazione (es da uno script di shell).
-- 
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: variable gobale

A me non va!!
Su un altro PC invece funziona. Ma come mai???
#include<stdio.h>
#define MAX 10
int min = MAX;
main()
{
printf("%d",min);
}
Il compilatore mi scrive questo, ma a me sembra giusto.
[C++Error] TEMPL.cpp(5): Type mismatch in redeclaration of 
'std::min(const T &,const T &)'.
[C++Error] TEMPL.cpp(5): Illegal initialization.
[C++Error] TEMPL.cpp(5): Declaration syntax error.
[C++Error] TEMPL.cpp(8): Overloaded 'min' ambiguous in this context.
-- 
molla sa macchina....molla sa macchinaaaaaaaaaaaaaa

 [C++Error] TEMPL.cpp(8): Overloaded 'min' ambiguous in this context.
Ok risolto.


Amaso ha scritto:

Magari dire come hai fatto...
Poi, quello non era neanche C per me...
Avrebbe dovuto essere così:
#include <stdio.h>
#define MAX 10
int min = MAX;
int main(void)
{
	printf("%d\n", min);
	return 0;
}
Saluti,
David
-- 
Linux Registered User #334216
Get FireFox! >> 
http://www.spreadfirefox.com/?q=affiliates&id=48183&t=1
Staff >> 
http://www.debianizzati.org
 <<

 Poi, quello non era neanche C per me...
Infatti sembrava c++ ;-)
Ciao
  Andrea

   Andrea


   Andrea


Newsgroup: it.comp.lang.c
Titolo: Calcolo tempo tra due chiamate

Salve a tutti come posso calcolare il tempo che inercorre tra due
chiamate di una funzione o tra due eventi di un programma?
Posso invocare la funzione time(null) salvare il risultato ed al
momento dell'evento finale fare una differenza tra il time(null) nuovo
e quello salvato?
Cioè;
//chiamata1
tempo=time(null);
//chiamata2
differenza=time(null)-tempo;
Posso farlo? L'unità di misura che ottengo cosa è? Come posso
trasformarlo in secondi?
Grazie, ciao ciao.

 chiamate di una funzione o tra due eventi di un programma?
il 22/04 è stato postato 1 messaggio simile, dall'oggetto "cronometrare il
codice", prova a dare un'occhiata.
Ciao
-- 
sed -r 's/\.UI|UI\.//g'

Newsgroup: it.comp.lang.c
Titolo: Pentax 330GS vs 33-L

Stufo di aspettare per la Nikon 3100
avevo pensato di prendere una Pentax.
Vedo che la 33-L e' piu' nuova della
330GS e costa anche 30E. in meno.
Quali sono le differenze?
Grazie


eh?

chiedo scusa...ho sbagliato NG
capita con Free Agent
Newsgroup: it.comp.lang.c
Titolo: Chiamata a funzione tramite puntatore

E' possibile?
 tipo:
void
foo()
{
  printf ("Io sono foo...");
}
 ...
int
main()
{
    void *f ;
 f = &foo;
             //           fin qui tutto bene, ma non so come procedere.
  f();       // gcc segnala errore.
qualche idea?
So che si puo' fare. Non mi ricordo dove l'ho visto!
Saluti,
 Pierluigi

 E' possibile?
#include <stdio.h>
void foo(void)
{
        fputs("Io sono foo...", stdout);
}
int main(void)
{
        void *f = &foo;
        ((void (*)(void)) f)();
        return 0;
}
Ciao ciao,
Andrea
-- 
"...Unix, MS-DOS, and Windows NT (also known as the Good, the Bad, and 
 the Ugly)."
(by Matt Welsh)

     void *f ;
Questo è un puntatore a void. Il puntatore a funzione che restituisce
void si definisce come
void ( *f )();
Il resto dovrebbe andare bene.
EMG

 
Alla fine c'ero arrivato, anche se io dichiaro la funzione come
   void * (* func)();
poi func = (void *) & foo;
  e infine la chiamo con
    (*foo)();
  Hai fatto caso cosa succede se la metti in una struttura?
Per esempio puoi chiamare la funzione con un foo->func();
Sembra quasi un C++...
Saluti e grazie,
  Pierluigi

E' possibile?
typedef void (*func_ptr)() ;
void foo()
{
}
int main()
{
    func_ptr p = foo ;
    p() ;
    return 0 ;
}

         void *f = &foo;
Attenzione il tipo (void *) e' garantito dallo standard accogliere
qualsiasi tipo di
puntatore a tipo, ma non e' garantito x puntatori a funzione,non so so se
col nuovo
standard le cose sono diverse.
Ivan Molella

     (*foo)();
Hmmm... mi pare che qui ci sia qualcosa che non va. 8)
Però io pensavo che tu volessi per forza utilizzare un 'void *', 
se non è così è senz'altro meglio usare un puntatore a funzione.

Newsgroup: it.comp.lang.c
Titolo: SIGH! formatto??

ho un borland c++ builder 3, installato da un paio di mesi. L'ho usato
nel frattempo,e mai senza problemi. Subito per fare qualche prova in
modalita' "grafica", poi per fare pratica, scrivendo programmi per
"consolle", cioe' senza modalita' grafica. Ok, mi esprimo come un
contadino informatico eh?
Beh, ora volevo rifare qualcosa con le finestrelle, ma nessun programma
in modalita' grafica (applicazione, come lo chiama la borland) mi parte,
e  neppure quelli precedentemente fatti e che funzionavano.
Perfino un programma "vuoto", cioe' con solo una form vuota, e senza
codice aggiuntivo mio, parte. Mi segnala errori nel "windows.h" e piu'
precisamente in righe come queste:
using std::memset;
il compilatore mi dice "qualifier std is not class or nomespace name"
cosa posso fare? Non ho cancellato file , non ho spento il computer
mentre andava...
non ho virus.. boh, se qualcuno sa aitarmi lo ringrazio molto,
altrimenti mi vedo costretto a disinstallare e reinstallare tutto il
borland builder....
grazie e TNX,
Alberto

ho un borland c++ builder 3, installato da un paio di mesi. L'ho usato
it.comp.lang.c++

Newsgroup: it.comp.lang.c
Titolo: Re: lista funzioni std e non


Sul sito 
www.unix.org
 dell'OpenGroup, trovi la Single Unix Specification
version 3 scaricabile gratuitamente dopo una registrazione.
Non e` esattamente quello che cerchi, ma contiene tutti gli header
previsti da Unix, inclusi quelli della standard library del C. E` una
ottima fonte di materiale.
Saluti,
Marco

Marco Pallante wrote:

se creassi un sito in grado di archiviare tali informazioni, e di renderle
accessibili in modo rapido ed intuitivo.. qualcuno di voi sarebbe disposto
a mantenerlo aggiornato? naturalmente qualcuno che possieda una conoscenza
adeguata di tale linguaggio..

Newsgroup: it.comp.lang.c
Titolo: Da stringa costante a lunghezza mediante preprocessore

#define MAGICSTRING "foobar"
Esiste qualcosa che mi permette di definire un array della dimensione
pari alla stringa MAGICSTRING?
Vorrei fare qualcosa del genere:
  typedef struct {
    char string[7];
    int x;
    int y;
  } miastruct;
Quel [7] dovrebbe cambiare a seconda della lunghezza della MAGICSTRING.


Potresti usare qualcosa del genere:
#include <stdio.h>
#include <string.h>
const char MAGICSTRING[] = "foobar";
typedef struct {
     int x;
     int y;
     char nome[sizeof(MAGICSTRING)];
} miastruct;
int main(void) {
     miastruct variabile;
     strcpy(variabile.nome, "bonbon");
     puts(variabile.nome);
     return 0;
}
Però se devi usare il preprocessore, perchè non definisci con una
macro direttamente la lunghezza? Oppure se ti serve un array variabile
a run-time puoi usare un "flexible array member" che è stato introdotto
nel C99.
-- 
Non puoi insegnare qualcosa ad un uomo. You cannot teach a man anything.
Lo puoi solo aiutare   --  Galileo  Galilei  --   You can only help him
a scoprirla dentro di sé.                        discover it in himself.
Vincenzo Mercuri
Newsgroup: it.comp.lang.c
Titolo: trigonometria

qualche algoritmo per l calcolo di seno o coseno?


ti leggi l'angolo in radianti e lo metti in una variabile x ovviamente tipo
float.
precisione=1.0e8;
y=term=x;
x2=x*x;
i=3;
do
{
term = (-term*x2)/(i*(i-1);
y=y+term;
i=i+2;
} while ((term>precisione) || (term<-precisione))
questo e' per il seno poi facendo le dovute piccole modifiche ti puoi anche
calcolare il coseno.
euterpex

 wrote in message
FNRo6.8555$yl2.1...@news1.tin.it...


 ha scritto nel messaggio
news:CRap6.103482$Y93.2...@news.infostrada.it...

Newsgroup: it.comp.lang.c
Titolo: [REQ] Come inserisco codice assembly in un programma c?

Dovrei inserire questi comandi per
entrare nella modalità grafica, ma DevC++
non me lo compila:
asm {
    mov ax,13h //Funzione 13
    int 10h //Interrupt video
}
devo includere qualche libreria speciale?
Non ho trovato nulla su google
-- 
,Blob{..DX21..}
visitate il mio sito:
http://xoomer.virgilio.it/blob.dx21/
----
"The voice is still clear in my head;
it's the last word in monologue....
close-up, interior, night."
Peter Hammill - Incoherence [2004] 

 Non ho trovato nulla su google
quel bastardo di gcc usa la sintassi at&t per l'asm in linea (anche se 
mi pare che le versioni particolarmente recenti supportino la sintassi 
intel).
leggi qua:
http://www.ibiblio.org/gferg/ldp/GCC-Inline-Assembly-HOWTO.html
ciao.

 ciao.
Grazie, ma non ho linux a disposizione...come faccio?
,Blob 


... andrà bene anche per s.o. diversi da  linux .
Ciao
Newsgroup: it.comp.lang.c
Titolo: Implementazione controllo PI in C

Ho implementato un controllo di tipo PI in c
su un microcontrollore 8bit.
Il problema è che la variabile piout si comporta come una signed 16 bit 
anziche' come una signed 32 bit.
Deve essere un problema di sintassi.
Al seguente indirizzo ho pastato il codice con una breve spiegazione.
http://rafb.net/p/xv6bQc39.html
Grazie
PippoPippo


Stai sommando tre "s16". Il risultato sarà quindi un "s16" promosso a
"s32" al momento dell'assegnamento. Proverei a fare un cast a "s32" di
almeno un valore, tanto per far capire al compilatore che vuoi che
conti a 32bit.
Ad occhio e croce credo il problema sia questo.
Ciao!

Pippo ha scritto:

Indipendentemente dal problema, cui ti hanno gia' risposto, a me non 
sembra corretto il calcolo della parte proporzionale.
Se fai errore_attuale - errore_precedente e' la parte derivativa.
La parte proporzionale dovrebbe essere KP * errore_attuale.
Ciao
Giuseppe

=?ISO-8859-15?Q?Giuseppe=B3?= <giuseppeATh...@xxx.xxx> wrote in 
news:49346260$0$41653$
4faf...@reader4.news.tin.it
:

Anche il termine integrale e' sbagliato.
non e' terint = KI*erratt ;
ma dovrebbe essere terint += KI*erratt;
il termine integrale e' un accumulatore degli errori passati. chiaramente 
terint deve essere mantenuto tra una chiamata e l'altra della funzione.
Inoltre utilizzerei una struttura per contenere i parametri del PI e 
farei ritornare il valore di output dalla funzione, invece che metterlo 
in una variabile globale.
Ciao Jack
-- 
http://motoko.dyndns.org

Grazie fmassei come sempre,
era proprio quello.
PippoPippo
fma...@gmail.com
 ha scritto:


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

Ho scaricato un disassembler dal sito :
www.geocities.com/~sangcho
solo che non riesco a farlo partire dopo aver l'anciato il programma
quest'ultimo ritorna automaticamente in Win!
Chi saprebbe consigliarmi qualche altro disassemblatore in giro per il Web?

 solo che non riesco a farlo partire dopo aver l'anciato il programma
Hai provato a LAnciarlo? ;-)
ciao
Marco
--
Marco Coppo
University Of Sheffield
Newsgroup: it.comp.lang.c
Titolo: scambio file tra 2 PC in rete

come si potrebbe scrivere del semplice codice, per far comunicare 2 pc,
di cui si conosce l'ip, per far scambiare loro dei file???
Grazie a tutti per le reply ;)


In standard C non esiste nessun concetto che riguardi lo stack TCP/IP - 
prova a chiedere su un newsgroup che sia relativo alla tua piattaforma 
(it.comp.os.programmare.win32, o it.comp.os.linux.development, ad es.).
-- 
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/
Red...@jabber.linux.it/Gaim
 - Linux user 299762 @ machine 213003


Questa guida spiega le nozioni di base
http://www.ecst.csuchico.edu/~beej/guide/net/
e come vedi copre anche le minime differenze tra solaris, linux e win.
cia
vv
-- 
Valerio Vaccaro aka TulipAn
http://vaccaro.mine.nu/~valerio/

Grazie, vediamo cosa ci combino :)

la documentazione di beej è per sistemi *nix. Io in effetti stavo
progettando in windows, e dato che non ho familiarità con winsocket se
qualcuno magari aveva qualcosa di già pronto anche per rendermi conto
di come si scambiano  i file in rete tra 2 programmi, farebbe cosa
molto gradita.
Grazie ;)

 di cui si conosce l'ip, per far scambiare loro dei file???
Parola magica, socket.

 Grazie ;)
Per la seconda volta, sei OT: vogliamo aspettare ancora molto prima di 
spostarci sul newsgroup giusto (it.comp.os.programmare.win32)? :-(


Newsgroup: it.comp.lang.c
Titolo: manuale in italiano: dov'è???

Mi potete dire un sito in cui trovarlo.
Grazie

 wrote in message
01bec252$478a37e0$8114d8d4@default...


x=x+1
per rendermene conto !!! ;)...
Comunque ho notato che e' espressamente pensato per Unix...

 Grazie
Esiste pure quello scritto da Fabio Ciucci...non ho idea di come sia!
Newsgroup: it.comp.lang.c
Titolo: Approfondimento sul C per Linux

 }

 wrote in
news:uNDT9.15736$
AA2.7...@news2.tin.it
: 

PRIMO GRAVISSIMO ERRORE:
if(pid <errore>!=</errore> 0)
la fork potrebbe fallire e restituire -1 e tutto il codice sotto va a 
donnine allegre.
comunque:
Non ho ben capito il problema, vuol dire che in output hai:
<output>
1
2
4
5
3
</output>
?
Premetto che non ho letto con particolare dovizia il tuo codice, ma 
credo che se il problema è quello che penso io la soluzione è molto 
semplice:
Non puoi sapere quale sia il processo che va in esecuzione (prima padre 
poi figlio o il contrario), a meno che tu non lo gestisca in maniera 
esplicita con qualche tipo di sincronizzazione, in maniera molto rude lo 
puoi fare anche con i segnali.
man 2 kill
man 2 signal
e correlati
Spero di esserti stato di aiuto.
Ciao
ValerioZ

On Fri, 10 Jan 2003 17:54:34 +0000, TommyGun wrote:
non potresti ripostare il codice, indentato?
-- 
-=Riccardo Galli=-
 _,e.
s~  ``
 ~@.   ideralis Programs
.   ol 
 `**~  
http://www.sideralis.net

 non potresti ripostare il codice, indentato?
E magari sul ng giusto?
K
-- 
Home: 
http://kronoz.cjb.net
"L'ottimista pensa che questo sia il migliore dei mondi possibili. 
 Il pessimista sa che e` vero" -- J. Robert Oppenheimer

 K
Perchè scusa non siamo forse in un gruppo di discussione sul C !!

ValerioZ ha scritto:

Ok le considerazioni sulla fork sono giuste, ma pensiamo il caso in cui
vada tutto per il meglio(scusate se lo dico adesso).
Per quanto riguarda la stampa dei numeri, in output ho:
1
2
3
4
5
cioè li ho inseriti proprio per farvi capire con quale sequenza il prog
viene eseguito;
tale sequenza è alla base del mio quesito.
Spero di essere stato più chiaro.

 Perchè scusa non siamo forse in un gruppo di discussione sul C !!
Mai  letto il  manifesto? Qui si  parla appunto  del linguaggio  C (K&R,
ANSI, ISO)  non di qualunque  cosa che riguarda  il C. E la  tua domanda
riguarda  l'uso  di  una  libreria specifica  su  un  sistema  operativo
specifico (per il quale, tra l'altro, esiste un ng apposito).
K
-- 
Home: 
http://kronoz.cjb.net
"Su cio` di cui non si puo` parlare e` bene tacere".
 Ludwig Wittgenstein

 K
Saresti così gentile da postare anche il nome
di questo ng.
Grazie!

 
Ciao
ValerioZ

 Grazie!
Rispondo io per Kronos
it.comp.os.linux.development
Buona programmazione


 
Ok grazie mille.
Newsgroup: it.comp.lang.c
Titolo: [newbie] Imperfezione in output

Per esercizio ho fatto un programmino che presa una parola da tastiera, ne
stampa a video le posizioni delle lettere rispetto all'alfabeto.
Un esempio:
   se inserisco  " addio " a video mi dovrebbe stampare  1 4 4 9 15.
Giochicchiando un pò con la tabella ascii ho risolto il problema, ma viene
stampato a video un altro valore : -86  , che suppongo sia l' ENTER che
viene preso dalla getchar().
Esempio
se inserisco   "  addio   "  mi stampa 1 4 4 15 -86
Come posso ripulire la getchar() così da non farmi stampare quell' enter ??
e senza stravolgere troppo la filosofia del mio codice :-pp
(per ora non ho tenuto conto delle maiuscole o degli spazi, in quanto voglio
solo inserire una parola per volta ).
Posto il codice:
-----------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
int main()
{
  char a, temp= 'a';
  temp = int(temp);
  printf("Inserire la parola (1 x uscire ): ");
  while(   ( a=getchar() ) != '1')
  {
       a = int(a);
       printf(" %d  ",(a-temp)+1);
  }
  printf("\n\n");
  system("PAUSE");
  return 0;
}
----------------------------------------------------------------------------
---------
Mi impegno già a ringraziare colui che mi illuminerà :-))
Ciao a tutto l' NG!
-Simone-
-----------------------------------------------------------------
* ICQ: 101553251
* Date un occhiata al mio annuncio:
http://annunci.tiscali.it/scheda/annuncio/xe1121302/
magari mi potete dare una mano! :-)

>   while(   ( a=getchar() ) != '1')
se è il newline il problema basta che lo fai uscire con questa condizione..
while(   ( a=getchar() ) != '\n')

   } while (a!='n');


> >   } while (a!='\n');
ho perso la barra per strada.. ;)

 }
-- 
Enrico `Trippo' Porreca

Ringrazio tutti voi per le gentili risposte!!
mi vado subito a vedere sul manuale i vari suggerimenti (e correzioni:-) ed
a provare sul codice!
Grazie ancora
Simone

di nome int(). Credo si possa invece in C++.
In realtà non è una funzione, ma una forma di cast ammessa dal C++.

 In realtà non è una funzione, ma una forma di cast ammessa dal C++.
Ah capisco. Penso che prima o poi un po' di C++ dovrei studiarmelo.
-- 
Enrico `Trippo' Porreca

 ha scritto nel messaggio
news:3F756DAD...@lombardiacom.it...

che poi tanto per puntualizzare non e' un cast, ma e' come dire una falsa
chiamata ad un costruttore di un oggetto int ... che poi si comporti come un
cast e' vero ... ma la sintassi dice che hai chiamato un costruttore
esplicito ;-)
ciao

 ha scritto nel messaggio
news:bl43ig$6ul$1...@news.ngi.it...

Newsgroup: it.comp.lang.c
Titolo: disastro puntatori

Ciao
Ho un problema di allocazione di memoria.
In pratica ho 3 puntatori, uno alla scheda video e 2 come contenitori:
unsigned char far *schermoFisico;
schermoFisico=(unsigned char far *)MK_FP(0xA000;0x0000);
unsigned char far *schermoVirtuale;
schermoVirtuale=(unsigned char far *)malloc(64000*sizeof(unsigned char far
*));
unsigned char far *sprite;
sprite=(unsigned char far *)malloc(100*sizeof(unsigned char far *));
li vado ad inizializzare con valori differenti, tipo per schermoFisico metto
tutte le celle puntate a 1, schermoVirtuale metto tutte le celle pari a 2,
per sprite metto tutte le celle paria a 4.
Succede che quando vado a stampare a video schermoVirtuale (verso il
contenuto delle celle puntate da schermoVirtuale nelle celle puntate da
schermoFisico) mi visualizza un area video colorata di verde (2 = verde in
320*200*256colori), un area colorata di rosso (4=rosso) e poi dei puntini
sparsi tutti colorati! E' come se la memoria riservata allo sprite abbia
sovrascritto la memoria riservata allo schermoVirtuale e a sua volta
quest'ultima memoria sia stata ancora sovrascritta da altro a me
sconosciuto!
Che č successo? Come risolvo?

Magari postassi qualche frammento del codice in cui metti mani alle zone 
di memoria...
Comunque, per l'ennesima volta, quando si "malloca" qualcosa, il tipo da 
passare in sizeof non deve essere un puntatore ma il tipo di dati su cui 
si lavorerà.
Cioè tu devi/vuoi puntare ad un'area di memoria di cui di interessano i 
singoly byte:
putatore = (unsigned char far*) malloc (64000 * sizeof (unsigned char));
e non sizeof (unsigned char far *)
Questo comunque a prescindere da tutto.
Cmq, ripeto, posta qualche frammento del codice incrimitato.
-- 
Quando noi ignoranti eravamo di più, tutto era più bello (A. Celentano).
  ___   _   ___ _  _______   _______ ___
|   \ /_\ | _ \ |/ / _ ) \ / /_   _| __|
| |) / _ \|   / ' <| _ \\ V /  | | | _|
|___/_/ \_\_|_\_|\_\___/ |_|   |_| |___|


ho provato a fare così ma il risultato è ancora peggio di quanto succede 
mettendo il puntatore, prova tu stesso e capirai il perchè.
Newsgroup: it.comp.lang.c
Titolo: database in C

  Scusate la mia ignoranza, ma come ci si collega con un database nel
linguaggio C??
Esistono dei comandi gia' creati, o servono delle librerie ? Dove posso
reperire materiale
e informazioni ?
Grazie in anticipo.
--
Posted from 
e1.ny.us.ibm.com
 [32.97.182.101]
via Mailgate.ORG Server - 
http://www.mailgate.org

 Grazie in anticipo.
Generalmente esistono delle librerie (fornite con il DBMS) che esportano
delle API per accedere ad esempio ai risultati di una query.
Quindi dovresti guardare se nella documentazione del DBMS c'e` qualcosa
relativamente alle "API per il C".
Marco Guidi

 delle librerie ? Dove posso reperire materiale e informazioni ?
  Dipende dal database. Molti DBMS (Data Base Management System) possono
essere acceduti mediante librerie sviluppate direttamente dai produttori
del database, altri database sono corredati di moduli per l'accesso
diretto alle tabelle. 
  In ambiente Microsoft, inoltre, e` fornita l'ODBC (Open Data Base
Connectivity), che funziona da filtro tra il DBMS e l'applicazione.
L'ODBC e` raggiungibile dai programmi mediante un'interfaccia OLE. 
  Infine, molte delle librerie in parola consentono anche di passare al
DBMS query in linguaggio SQL. La Oracle ha sviluppato addirittura un
front-end di compilazione (il Pro-C) per generare sorgenti in C che
accedano ai propri DBMS.
  Informazioni nei puoi trovare all'infinito, per ogni tipo di DB, per
esempio sui siti dei produttori.
	Alla prossima,
		Marco

 L'ODBC e` raggiungibile dai programmi mediante un'interfaccia OLE.
Inoltre è presente anche nel mondo Unix, dove ODBC è nato e si è sviluppato
anche prima che lo scoprisse Microsoft.
--
Alessandro Monti
Newsgroup: it.comp.lang.c
Titolo: [?]Come faccio a creare...

Salve a tutti , premetto , uso Djgpp .La domanda e questa : quale è il
comando che crea
una cartella , devo includere sys.h ?
Grazie a tutti
Ciao Roberto

 una cartella , devo includere sys.h ?
Non ho sottomano la libreria standard, ma c'è la funzione mkdir adatta allo
scopo.
Ciao.


Attenzione che non è standard.
EMG


Sei sicuro, la dir.h mi pare che faccia parte dello standard:
 dir.h:
  int chdir(char *path) - Cambia la directory corrente a quella contenuta
nel
       "path" dato.
  char *getcwd(char *path, int numchars) - Ritorna il nome della directory
di
       lavoro corrente.
  int mkdir(char *path) - Crea una directory utilizzando il nome "path"
       specificato.
  int rmdir(char *path) - Rimuove la directory specificata.
Ciao.

 Sei sicuro, la dir.h mi pare che faccia parte dello standard:
No, non lo č. Sulla documentazione Borland č riportata compatibile
"solo" Unix e Win32. Comunque non č contemplata dal C standard.
EMG

 Attenzione che non è standard.
Dalla doc della libc:
#include <sys/stat.h>
int mkdir(const char *path, mode_t mode);
Description
This function creates a subdirectory. 
All the bits except S_IWUSR in the mode argument are ignored under MS-DOS.
If S_IWUSR is not set in mode, the directory is created with read-only
attribute bit set. Note that DOS itself ignores the read-only bit of
directories, but some programs do not. 
Return Value
Zero if the subdirectory was created, nonzero on failure. 
Portability
not ANSI, POSIX
          ^^^^^
Standard e' standard, ma che standard? ;-)
-- 
 Ciao, Bianco.
 Reply to luca.bianco (at) 
tiscalinet.it

 Standard e' standard, ma che standard? ;-)
Va bene, allora io da domani utilizzerň, nei miei programmi, la funzione
vattelapesc() che fa parte dello standard PINCOPALL. Tanto č standard...
:-)))
EMG

 > Portability

A parte la mia ultima frase, serio, nel senso che la funzione in questione
e' rispetta uno standard tutt'altro che poco diffuso, quindi uno standard
di fatto, e non solo "sulla carta". Certo e' che se si parlo de "Lo
Standard", allora no, non e' standard.

Newsgroup: it.comp.lang.c
Titolo: Chi mi trova l'errore nel listato?

ecco un semplice listato per calcolare il segno zodiacale:
#include<stdio.h>
char *Segno;
int g,m;
main()
   {
      printf("Giorno : ");
	  scanf("%d",g);
	  printf("\nMese : ");
	  scanf("%d",m);
	  switch(m)
	  {
	     case 1:
			{
		    if (g<=20)
			   Segno="Capricorno";
			else
			   Segno="Acquario";
			break;
		     }
	     case 2:
			{
		    if (g<=19)
			   Segno="Acquario";
			else
			   Segno="Pesci";
						break;
		     }
         case 3:
			{
		    if (g<=20)
			   Segno="Pesci";
			else
			   Segno="Ariete";
			   			break;
		     }
         case 4:
			 {
		    if (g<=20)
			   Segno="Ariete";
			else
			   Segno="Toto";
			   			break;
			}
		 case 5:
			{
		    if (g<=20)
			   Segno="Toto";
			else
			   Segno="Gemelli";
			   			break;
		}
		case 6:
			{
		    if (g<=21)
			   Segno="Gemelli";
			else
			   Segno="Cancro";
			   			break;
		}
		case 7:
			{
		    if (g<=22)
			   Segno="Cancro";
			else
			   Segno="Leone";
			   			break;
		}
		case 8:
			{
		    if (g<=23)
			   Segno="Leone";
			else
			   Segno="Vergine";
			   			break;
		}
		case 9:
			{
		    if (g<=22)
			   Segno="Vergine";
			else
			   Segno="Bilancia";
			   			break;
		}
		case 10:
			{
		    if (g<=22)
			   Segno="Bilancia";
			else
			   Segno="Scorpione";
			   			break;
		}
		case 11:
			{
		    if (g<=22)
			   Segno="Scorpione";
			else
			   Segno="Sagittario";
			   			break;
		}
		case 12:
			{
		    if (g<=21)
			   Segno="Sagittario";
			else
			   Segno="Capricorno";
			break;
		}
		default:
		    Segno="Ciao";
			break;
			}
	printf(Segno);
}
solo che quando lo avvio non mi permette di introdurre da tastiera i
dati...utilizzo icc-win32 e mi compare la classica finestra DOS con alla
fine scritto "premere un tasto per continuare..."
grazie mille
--------------------------------
Inviato via 
http://usenet.libero.it

 wrote
Io in 3 secondi....
  scanf("%d",&g);
  scanf("%d",&m);
dimenticavi il carattere '&' !
Tommy

Newsgroup: it.comp.lang.c
Titolo: [OT?]

Salve a tutti
Usando Dev-C++ sto cercando di aprire un file (nomefile.txt), ma senza
esito: l'operazione non va mai a buon fine (lo scopro facendo un controllo).
Sapete dove devo mettere i file che voglio aprire usando quest'ambiente di
sviluppo? Mettendolo nella stessa cartella dove si trova il sorgente non
va...
grazie a tutti!
Luchino

scusate mi ero perso mezzo oggetto!


 esito: l'operazione non va mai a buon fine (lo scopro facendo un controllo).
fopen accetta il nome del file completo a partire dalla radice
(es. "c:/dir1/dir2/dir3/nomefile.txt"): se il file esiste e i
permessi lo consentono, fopen() lo apre.
HTH
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG
Newsgroup: it.comp.lang.c
Titolo: Djgpp...help in linea

Ciao,
a breve dovrň sostenere l'esame di pratica...il compilatore che dovrň usare
č il djgpp...siccome la memoria in quel momento mi potrebbe far cilecca...ho
visto che negli help sono elencate tutte le funzioni (o almeno credo che
siano tutte) delle varie librerie...ti dice la sintassi e ti fa un
esempio...perň non riesco a trovare cose piů banali come potrebbero
essere....while...swtich...e simili...dopo tutto anche questi devono seguire
una particolare sintassi!
Esiste nell'help del djgpp? E' questione di vita o di morte :)
Grazie
Byez
B@STI


Sebbene il modo di chiamata sembri quello delle funzioni (credo solo
per comodita' di parsing)... if, switch, while, etc sono keyword del
linguaggio e il loro modo di chiamata e' abbastanza semplice.
La spiegazione che chiedi tu viene demandata ai libri di testo, non
all'help del compilatore :)
if(), while() e do while() accettano una condizione
lo switch() prende una condizione e ne controlla il valore (otterresti
la stessa cosa in modo forse un po' meno efficiente con una catena di
if) andando a eseguire i costrutti CASE che matchano quella
condizione.
il for() e' l'unico che potrebbe darti qualche problema mnemonico
forse, ma e' facile:
for (cosa_fare_prima_di_iniziare; condizione;
cosa_fare_dopo_ogni_ciclo);
Le condizioni sono tutte booleane... essendo C vuoi tire che vengono
ricondotte a un valore intero e se e' 0 viene considerato falso, in
caso contrario viene considerato vero.
-- 
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."

 Mox
thx for all
byez
B@STI

 gia`...ma all'esame non avro` il librino :)
Vero,  ma se  non conosci  la sintassi  dell'if la  vedo un  po' dura...
Quello che Mox cercava  di dirti era di comprarti un  buon libro (K&R) e
seguire quello.
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
Al termine di un pranzo di nozze mi hanno dato un
amaro alle erbe cosi' schifoso che perfino sull'etichetta
c'era un frate che vomitava.
Newsgroup: it.comp.lang.c
Titolo: file <stdint.h> mancante

:
 "This spec was changed in ISO/IEC 9899:1999 TC1; in ISO/IEC
 9899:1999 as initially published, the expansion was required
 to be an integer constant of precisely matching type, which
 is impossible to accomplish for the shorter types on most
 platforms, because C99 provides no standard way to designate
 an integer constant with width less than that of type int.
 TC1 changed this to require just an integer constant
 *expression* with *promoted* type."
*/
#define INT8_C(val) ((int8_t) + (val))
#define UINT8_C(val) ((uint8_t) + (val##U))
#define INT16_C(val) ((int16_t) + (val))
#define UINT16_C(val) ((uint16_t) + (val##U))
#define INT32_C(val) val##L
#define UINT32_C(val) val##UL
#define INT64_C(val) val##LL
#define UINT64_C(val) val##ULL
/* 7.18.4.2  Macros for greatest-width integer constants */
#define INTMAX_C(val)  INT64_C(val)
#define UINTMAX_C(val) UINT64_C(val)
#endif  /* !defined ( __cplusplus) || defined __STDC_CONSTANT_MACROS */
#endif
////////////////////////////////////////////////////////////////////////////
///////////////////

 codice C?
Si. Comincia con quelli che usi e poi aggiungili man mano.
Se non ti serve int_least_32_t non devi definirlo.
ciao
Giacomo

 Giacomo
grazie mille
Newsgroup: it.comp.lang.c
Titolo: Array e Variabili

Salve a tutti,
scusate l'ignoranza, ma la mia domanda č questa:
In un array devono essere inserite unicamente delle costanti (con valori
quindi definiti) o possono essere inserite delle variabili?
Cioč, se ad esempio voglio creare un programma che calcoli la media di n
numeri, dove n č definito dall'utente tipo
puts("Di quanti numeri si intende calcolare la media? ",&n);
come faccio a dichiarare un array che contenga [n] ?
E' possibile che devo per forza dichiarare un array con un numero definito
di elementi?
Grazie,
Giovanna

 come faccio a dichiarare un array che contenga [n] ?
<code errorchecking="FALSE">
	#include <stdio.h>
	#include <stdlib.h>
	int main(void)
	{
		int    *values,
		        ivalno,
		          ival,
		           idx; 
		char cvalno[4];
		fputs("Quanti elementi? (<1000)",stdout);
		fgets(cvalno,3,stdin);
		ivalno=strtol(cvalno,(char **)NULL,10);
		values=malloc(ivalno*sizeof(int));
 
		for(idx=0;idx<ivalno;idx++) {
			fprintf(stdout,
				"Elemento numero %d (<1000)\n",
				idx+1);
			fgets(cvalno,4,stdin);
			ival=strtol(cvalno,(char **)NULL,10);
			*(values+idx)=ival;
			/* OR: values[idx]=ival;
		}
		/* put here your computing tasks */
		free(values);
		return 0;
	}
</code>
	Alla prossima,
		Marco

 come faccio a dichiarare un array che contenga [n] ?
Dichiari un puntatore a int e la variabile n:
int* elementi;
int n;
/* qui otterrai il valore di n */
elementi = malloc(n*sizeof(int));
/* ossia allochi memoria per n elementi di tipo int */
-- 
 Ciao, Bianco.
 Reply to luca.bianco (at) 
tiscalinet.it


Puoi usare l`allocazione dinamica della memoria.
Es. per un array di interi:
int *p;
p=malloc( n * sizeof(int));
if (p != NULL) {
 /* tua elaborazione */
)
free(p) /* alla fine */
HTH
Newsgroup: it.comp.lang.c
Titolo: stampa vettore di char

Salve,
ecco il mio problema:
ho un vettore di char s in cui ho inserito una stringa da tastiera.
Vorrei stampare il vettore con una funzione, ma evidentemente mi sfugge
qualche concetto. Credevo infatti che la seguente funzione bastasse:
void    prt_string (char *s)
{
    char *p;        /* definito puntatore a char */
    for (p = s; *p != "/0"; p++)
        printf ("%c", *p);
}
Evidentemente ci deve essere qualche grosso errore che non riesco ad
individuare causa qualche "piccolo" concetto non compreso....
Dov'è il mio errore???
Thanks....
Bye             ;o)

 ad individuare causa qualche "piccolo" concetto non compreso....
  Non so se sia un errore di battitura ma "/0" non e` il carattere di
terminazione della stringa, che invece e` '\0' (se usi la notazione
dereferenziata devi riferirti a costanti caratteri e non stringhe).
  Inoltre: nel vettore c'e` effettivamente il carattere '\0'? Se lo
leggi da tastiera carattere per carattere non e` detto che ci sia, a
meno che non lo inserisci tu.
	Alla prossima,
		Marco




 qualche concetto.
Si, manca l'allocazione della memoria atta a contenere i dati puntati
dal tuo puntatore. Es.:
char *p;
p = malloc( 100 ); /* Spazio per 100 char */
...
free( p ); /* rilascia la memoria */
EMG

Thanks, ora tutto funzia.

dal tuo puntatore. Es.:
Andiamo, siamo seri ;)

}
"/0" e' un valore non confrontabile con *p che e' di tipo char.
void print( char *s )
{ 
     for ( ; *s ; s++ ) putchar( *s ) ;
     fflush( stdout ) ;
}

Newsgroup: it.comp.lang.c
Titolo: formattazione scanf() in C

chat vettore[20];
scanf("%[aeiou]",vettore);
printf("%s",vettore);
 
 
 
Ho provato a digitare "saei" seguito da un invio e non mi visualizza nulla.
 
Ho provato a digitare "aeiouHHHH" e mi visualizza 'aeion' con il 
troncamento di HHHH.
 
Ho digitato "saeiou" e non visualizza nulla
 
Ho digitato "aHHHeiou" e visualizza 'a'
 
Il parametro %[aeiou] non dovrebbe accettare solo i caratteri compresi 
nella parentesi a prescindere l'ordine?
 
 
Ciao
 
Nero23


Infatti e' cosi'! :)
Appena intercetta un carattere che non e' tra quelli indicati
tra parentesi smette di leggere.
 
ciao
Giacomo

 tra parentesi smette di leggere.
 
E' come avevo immaginato.
Grazie
Newsgroup: it.comp.lang.c
Titolo: Operatore condizionale

Ho difficoltà a risolvere questo esercizio:
utilizzare l'operatore condizionale ? : per determinare il numero maggiore
su tre valori interi distinti messi in ingresso.
Grazie, 
Giuseppe Alonzo
trav...@tin.it

su tre valori interi distinti messi in ingresso.
Pensa un poco come lo faresti con degli if-then-else, ad esempio se
i numeri sono a, b, c avremmo, in pseudocodice:
    if a > b then
        // b non e' certo il maggiore,
        // restano da considerare
        // soltanto a e c
    else
        // a non e' certo il maggiore,
        // restano da considerare
        // soltanto b e c
Ogni parte "restano da considerare soltanto x e y" naturalmente si
espande a
        if x > y then
            il maggiore e' x
        else
            il maggiore e' y
Tutto chiaro sin qua?  Allora supponiamo di scrivere questa come
una funzione, la pseudoistruzione "il maggiore e' Z" diventa, spero
che sia chiaro, l'istruzione C:
        return Z;
Spero che sin qua sia tutto chiaro e manchi solo il passaggio di
cambiare lo pseudocodice "if qualcosa then ... else ..." in usi
dell'operatore ternario (detto anche condizionale); visto che
immagino che il tutto debba essere una singola espressione,
bisognera' poi che "return Z;" diventi semplicemente "Z".  Infine
per chiarezza useremo parentesi, anche ridondanti se occorre,
cosi' da non lasciare ambiguita' al lettore.
Ebbene, il mattoncino che ti manca e' ormai solo questo: lo
pseudocodice "if alpha then beta else gamma" diventa:
    (alpha)?(beta):(gamma)
Per dimostrare che hai veramente capito tutto questo, e che lo
scopo dell'esercizio non e' vanificato dal trovarti "la pappa gia'
cotta", prova dunque a scrivere l'espressione che risolve il
tuo quesito originale... gli elementi ormai li hai tutti, no?
Alex

Giuseppe (
alma...@tin.it
) wrote:
: Ho difficoltà a risolvere questo esercizio:
: utilizzare l'operatore condizionale ? : per determinare il numero maggiore
: su tre valori interi distinti messi in ingresso.
int max3(int a, int b, int c)
{
        return (a>b) ? (c>a ? c : a) : (c>b ? c : b);
}
Ciao ciao
Andrea
-- 
"...Unix, MS-DOS, and Windows NT (also known as the Good, the Bad, and 
 the Ugly)."
(by Matt Welsh)
Newsgroup: it.comp.lang.c
Titolo: PERCHE'??????

Ciao ragazzi....devo chiedervi una cosa...:
perche'se scrivo in un programma una cosa del genere
printf("Vuoi continuare?  (s/n)");
getche(scelta);
if(scelta=='s') process();
else exit; 
lo compilo e poi lo lancio...al momento della domanda "Vuoi continuare? (s/n)"
digito s e la if non funziona andando sempre direttamente all'else???????
Vi prego aiutatemi e se conoscete qualche costrutto alternativo me lo dite!!!!
Ciao e Grazie
--
         _____________________________________________
        |\                               Int17 PC    /|
        | \-----------------------------------------/ | 
        | | Per ogni passo strisciato, stanco       | |
        | | e nel frattempo tutto il resto          | |
        | | e' fretta, e la scelta e' o resti       | |
        | | o corri per davvero.                    | |
        | | C'e' chi corre e chi fa correre         | |
        | | e c'e' chi non lo sa                    | |
        | | io so solo che, io so solo che          | | 
        | | quando tocca a te, TOCCA A TE.          | | 
        | |                           (L. Ligabue)  | | 
        | /-----------------------------------------\ |
        |/___________________________________________\|
        /                                             \
       / #######################     ##     ######     \            
      / ########################   ######   #######     \---------E  
     /___________________________________________________\            
     |                                                   |
      ---------------------------------------------------


ICQ #34602650

else exit; 
Non ho controllato il funzionamento di getche(), anche perche' non e'
standard, ma il codice che hai scritto credo che non vada bene.
Se getche() accetta come parametro il carattere in cui memorizzare il
valore "inputato" (il che e' improbabile a mio avviso), bisogna
compiere un passaggio per riferimento, cioe' :
getche(&scelta) ;
Nel caso invece la funzione restituisca il carattere letto, deve
essere :
scelta = getche() ;
(Credo che quest'ultimo caso sia quello giusto).
Andrea Laforgia


Si questa è quella giusta.
Ciao
                Pevar...


Newsgroup: it.comp.lang.c
Titolo: programma c per montare file criptati in linux

Salve, non so se la mia domanda sia OT o meno:
Uso sotto linux dei file criptati che monto e smonto come filesystem
all'occorrenza.Attualmente per farlo uso script bash che lanciano il comando
mount e umount..Vorrei sapere se qualcuno conosce qualche programma c per
farlo.
Vista la semplicita' ho provato a realizzarlo ma mi sono trovato in
difficolta nel passaggio della password al programma mount....

 difficolta nel passaggio della password al programma mount....
it.comp.os.linux.development...
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Newsgroup: it.comp.lang.c
Titolo: Quale libro per imparare il C?

 
Linguaggio C 
Kernighan Brian W.; Ritchie Dennis M. 
23 euro si ibs
C. Corso completo di programmazione  
Deitel Harvey M.; Deitel Paul J. ; Apogeo
28 euro su ibs (con lo sconto del 20 per cento)
Programmare in C  
Aitken Peter G.; Jones Bradley J. ; Apogeo
26 euro sempre su ibs (sconto 20)
Tenete presente che so al massimo stampare su video il famoso "Hello
world!"

 26 euro sempre su ibs (sconto 20)
Questo non l'ho letto.
Naturalmente si tratta di pareri personali, anche se il K&R e` 
considerato pressoche` ovunque il miglior testo introduttivo sul C (non 
pero` sulla programmazione in generale).
-- 
Enrico `Trippo' Porreca

Aitken va molto nel dettaglio. E' semplicissimo nel linguaggio e
approfondisce parecchio ed e' per questo che non analizza le tecniche
avanzate (alberi, grafi etc.).
Kernigham-Ritchie e' la Bibbia ma non e' molto strutturato, parte da una
tecnica che si basa sulle esercitazioni e su un dialogo molto discorsivo.
Al contrario ho trovato veramente fatto bene Schildt-Linguaggio C-McGraw. E'
sintetico nelle parti di base ma abbraccia tutti gli argomenti fino agli
alberi, ai grafi e cosi' via. E' molto piu' che un testo di apprendimento.
Deitel l'ho usato solo per C++ ma mi dicono che sia molto buono.
La scelta si gioca sulle finalita'. Per lavorare su tecniche avanzate o per
operare su un C a basso livello (programmazione microprocessori etc.)
leggerei Schildt, per un esame universitario o per imparare da zero userei
Aitken.
Ilario
"L'Opossum" <rte@rer.q> wrote in message
news:ma3envsj8oo495k5s...@4ax.com...


Al contrario ho trovato veramente fatto bene Schildt-Linguaggio C-McGraw. 
I libri di Schildt (se ne è discusso molte volte qui dentro e su
it.comp.lang.c++) sono assolutamente da evitare.  Purtroppo Schildt è
un bravo scrittore, il che maschera bene la marea di errori, nonché di
cattive interpretazioni degli standard, presenti nei suoi libri.
Newsgroup: it.comp.lang.c
Titolo: c su linux e c su windows

ciao
quali sono le maggiori differenze?
grazie

Adesso magari dico una gran str... :) ma credo che lo standard ANSi ci sia
proprio per garantire la portabilità.

 proprio per garantire la portabilità.
Esatto.
Le differenze nel programmare in C tra un sistema operativo e l'altro si 
hanno generalmente nella disponibilita` di differenti funzioni 
non-standard utili per ottenere funzionalita` strettamente legate all'OS 
stesso (ad esempio per quanto riguarda gestione dei processi, rete, 
grafica, etc...). Ovviamente il loro uso rende il programma non 
portabile su altri sistemi operativi.
Finche` si rimane nello standard, comunque, le differenze sono 
sostanzialmente nulle.
-- 
Enrico `Trippo' Porreca

 sostanzialmente nulle.
E questa e' una manna per chi come me fa piu' che altro
programmini di carattere matematico che hanno i parametri
sulla linea di comando e output testuale (e li devo usare solo io...)
In effetti li portavo senza problemi tra il gcc sotto linux
e il djgpp sotto win (e anche col Borland C++ Builder non ho
grossi problemi).
Putroppo per la maggior parte dei programmi "comuni" c'e'
da considerare l'interazione col maledetto utente, l'esplorazione di
directory, qualche bella finestra etc.etc. e allora sono dolori....
ciao,
g.

 directory, qualche bella finestra etc.etc. e allora sono dolori....
...parzialmente risolubili con l'uso di librerie che (seppur non 
standard) sono portabili su diversi sistemi. Per il maledetto utente 
purtroppo c'e` ben poco da fare :-)
-- 
Enrico `Trippo' Porreca

Newsgroup: it.comp.lang.c
Titolo: passaggio stringa costante ad una funzione

Salve a tutti,
perdonatemi se puo' sembrare stupido, ma mi viene il dubbio se tale sintassi
č legale o meno, nel senso che mi viene il dubbio su dove venga allocata la
stringa passata a foo! Viene allocato nello stack la variabile puntatore e
la stringa viene allocata nella memoria statica?
Grazie.
...
foo("visualizza questa stringa");
...
/* foo:  stampa la stringa costante */
void foo(const char *str)
{
    printf("%s \n", str);
    /* return; */
}

foo("visualizza questa stringa");
Premesso che la sintassi e' legale, la stringa che passi alla
funzione e' in realta' il puntatore a una zona di memoria gia'
contenente quei caratteri alla partenza della macchina.
I caratteri fanno parte dei dati costanti della tua applicazione.