mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c
Titolo: Passaggio di valori per riferimento

Salve,
Ho scritto il seguente programma:
----------------------------------------
#include <stdio.h>
int swap (int *px, int *py);
void main (void)
{
 int a, b, vala, valb;
 printf("Inserisci A ");
 gets(&a);
 printf("\nInserisci B ");
 gets(&b);
 printf("\nA: %d B: %d", a, b);
 swap (&a, &b);
 printf("\n\nA adesso e' uguale: %d e B e' uguale: %d\n", a, b);
 return;
}
int swap (int *px, int *py)
{
 int temp;
 temp=*px;
 *px=*py;
 *py=temp;
 return *px, *py;
}
----------------------------------------
La mia domanda e' la seguente:
Premessa:
Dovendo passare ad una funzione degli argomenti e com'e' noto non avendo la
possibilita' di passare gli argomenti per valore, trattandosi di un caso in
cui non si puo' invertire il contenuto degli argomenti, ho
utilizzato i famigerati puntatori utilizzando quello che in gergo viene
chiamato ' passaggio di argomenti per riferimento'.
A questo punto come faccio ad avere dalla funzione SWAP i valori immessi
inizialmente, anzichč il loro contenuto?
(per intenderci A e B e non cosa essi contengono)
Grazie.
Ciao.
Alex

(per intenderci A e B e non cosa essi contengono)
Non ho capito.
--
Andrea Laforgia (ICQ 87230455)
------------------------------ 
#exclude <windows.h>

 Alex
Non capisco la domanda; prova riformularla dopo aver corretto:
- gets() che si usa per immettere stringhe e non interi
	usa scanf("%d",&a)
- la funzione _int swap(int* x,int *y)_ che invece di un int ne ritorna
  due. Dato che usando i puntatori operi direttamente sui valori e non
  su una copia, prova con void swap(int* x, int *y) e togli
  return *px,*py
HTH

 int swap (int *px, int *py)
void swap (int **px, int **py)
{
  int * temp;
  temp = (* px); (* px) = (* py); (* pk) = temp;
  return; 
}
/* anche i VALORI dei puntatori possono essere passati */
/* per RIFERIMENTO passando puntatore a puntatore      */
ciao
Roberto.

void swap (int **px, int **py)
E' uno scherzo ?


 --
Forse con singoli interi non serve, ma con array di interi
o meglio ancora con array di char e' utile scambiare i
puntatori anziche' fare memcopy di tutto l' array.
Ho interpretato cosi' la domanda fatta da Alex, ma potrei
aver sbagliato. Io ho usato una finzione simile, ma con
prototipo piu' complesso, per usarla con strutture dati
generiche quando ho scritto mergesort. il buffer temporaneo
veniva scambiato con l' array da ordinare e alla fine,
a seconda che il numero di passi fosse pari o dispari,
la funzione mergesort() restituiva idifferentemente o
l' array ordinato originale o il buffer di appoggio, comunque
ordinato, su cui eventualmente applicare memcopy.
l' ho ritenuta una tecnica efficiente....ma forse non c' entra
con quanto richesto da alex.
ciao.
Roberto.

un esempio:
Newsgroup: it.comp.lang.c
Titolo: [semplice] esecuzione programma e controllo I/O

dovrei lanciare da un programma mio (scritto standard C in linux) un 
esecuzione di un altro programma che consente input/output interattivo (il 
programma in questione č Spice).
Dovrei dargli dei comandi da standard input e riceverli da standard output.
Qual'č la maniera piů elegante e semplice (ho paura di complicarmi 
inutilmente la vita).
Ciao e grazie....
-- 
__________________________________
"Ama e fai c'ho che vuoi".... 
__________________________________

 inutilmente la vita).
Finche' si tratta di passare dei parametri da linea di comando non hai 
problemi... quando si tratta di leggere l'output del processo anche (basta 
una redirezione su file). Diventa complicato fare in modo standard I/O 
iterativo come quello che serve a te.
Non mi e' mai capitato, ma dovessi fare qualcosa di simile, come prima cosa 
guarderei ad una named pipe (esistono sia sotto windows che sotto linux).
Guarda questo link 
http://gapil.firenze.linux.it/html/node231.html
 poi fai 
un bel man fifo.
E se c'e' qualcosa di oscuro, chiedi chiarimenti su 
it.comp.os.linux.development :)
-- 
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."

 Ciao e grazie....
Allora, se ho capito bene, il tuo programma forka, poi il figlio la una
execve e lancia Spice, che deve ricevere e mandare istruzioni da e verso il
primo processo.
Ti suggerirei di usare una pipe, dato che sei sotto Linux, e la dup2.
Scusa se non posto esempi, ma vado di fretta.
Saluti

 inutilmente la vita).
man popen

Ottavio Campana wrote:

[...]$ man popen
No manual entry for popen
come mai???
-- 
__________________________________
"Ama e fai ciň che vuoi".... 
__________________________________

 come mai???
Forse non hai installato le pagine man per lo sviluppo.
Te ne do una descrizione sommaria, che spero sia corretta:
FILE *popen(const char *command, const char *mod);
Il primo argomento è il programma che devi lanciare, mentre "mod" specifica
la modalità d'apertura: "r" per lettura _oppure_ "w" per scrittura. Questa
funzione forka ed esegue /bin/sh passandole la stringa "command". Ritorna
uno stream collegato con lo standard input _o_ con lo standard output del
processo eseguito oppure un NULL, come fopen().
Per chiudere lo stream ritornato da popen(), si deve usare la pclose(), che
esegue una wait4().
Buon lavoro
Saluti
Newsgroup: it.comp.lang.c
Titolo: PROBLEMA CON LE STRINGHE

Se volessi impostare un costrutto di selezione del tipo if()
espressione; e come condizione volessi mettere un array= ad una certa
stringa perche' non va bene scrivere:
if (parola=="pippo")
mentre funziona scrivere
if (parola[1]=='p')&&(parola[2]=='i') e cosi' via...non c'e' un modo +
semplice per richiedere il confronto fra una stringa ed un intreo
array di carattere senza far lettera per lettera ?

 array di carattere senza far lettera per lettera ?
Forse ti converrebbe passare al C++ dove, al contrario, esiste il tipo
standard std::string.
EMG

 if (parola=="pippo")
#include <string.h>
.......
if (strcmp(parola, "pippo") == 0) {
	/* sono uguali */
}
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: Lettura&Scrittura File

Salve a tutti,
ho un piccolo problema per la lettura di un file.
Vi descrivo la situazione ;)
Utilizzo le funzioni fopen, fscanf, fclose,  per la lettura.
Il sistema operativo è Unix.
Apro un file che è stato appena scritto e chiuso da una libreria che
richiamo, nel codice di questa libreria prima della chiusura del file esegue
un fflush, e successivamente chiude il file.
Io subito dopo la chiamata a questa libreria apro il file in modalità "r",
ed effettuo un ciclo di lettura.
Inizialmente non trovo nulla come se il file è vuoto, dopo un paio di
istruzioni legge il file correttamente.
Ora la faccenda è molto strana, a meno che il sistema operativo non
bafferizzi e scriva sul file quando fa comodo a lui ignorando il flush ed il
close.
il codice di lettura è il seguente:
funzionelibreria()
pfile=fopen("FileDiOutputLibreria.txt","r");
do{
 fscanf(pfile,"%s",testo);
}while (!feof(pfile));
fclose(pfile);
grazie....

 fscanf(pfile,"%s",testo);
e la &?

 e la &?
Se testo e' (come sembra) una variabile char testo[...] o char *testo;
allora la & non ci va.
Per quel che riguarda il problema specifico e' capitato
qualcosa di simile anche a me, non ricordo se sotto
win o linux.
Consiglierei di rivolgersi ai gruppi che rigurdano la
programmazione in ambiente linux, visto che questo
temo sia piu' un problema di interazione col s.o. che
un problema del linguaggio.
ciao,
g.

Vi ringrazio per le risposte ;) vedrò se allora dipende dal s.o.
bye
"Giovanni Resta" <g.r...@iit.cnr.it.nospam> wrote in message
news:brp22j$55o$1...@newsfeed.cineca.it...


 e la &?
Non serve! Ti stai confondendo!
Tommy
Newsgroup: it.comp.lang.c
Titolo: getc() e fgetc()

Hello world,
se uso getc(stdin) per far sì che il programma attenda un Enter,
il compilatore mi dà Warning: code has no effect.
Tuttavia in esecuzione l'effetto c'è ed è quello voluto.
Se uso fgetc(stdin) nessun problema, neanche in compilazione.
Ma non erano equivalenti?
THX,
@le

Ma non erano equivalenti?
Si'.
Anzi, sono la stessa cosa con molti compilatori, visto che fgetc e'
una macro "wrapper" di getc.
--
Andrea Laforgia (ICQ 87230455)
http://www.geocities.com/AndreaLaforgia
"ci sono tre tipi di persone nel mondo : quelli che
 sono bravi in matematica e quelli che non lo sono."

 ma in circostanze normali no.
Compilando quanto hai scritto ottengo 2 warning:
- "condition is always false";
- "unreacheable code".
Nel mio caso ho "code has no effect", ma in effetti
le due situazioni hanno qualcosa in comune.
I miei warning compaiono in corrispondenza di
istruzioni del tipo:
...
if (vchoice) getc(stdin);
...
in genere alla fine di funzioni richiamate dal main.
Il mio intento è quello di stoppare l'output in modo
che l'utente veda quello che è stato scritto
sullo schermo.
vchoice è dichiarata int ed è globale. E' letta da
tastiera all'inizio dell'esecuzione come segue:
int main(void) {
    ...
    int opt2;
    ...
    do {
        printf("\nVisualizzare i risultati intermedi? (s/n)");
        opt2 = fgetc(stdin);
    } while (!strchr("snSN", opt2));
    if (strchr("sS", opt2)) vchoice = 1;
    else vchoice = 0;
    ...
}
Per caso il compilatore presuppone che vchoice sia sempre zero?
O forse ricopiare opt2 (locale) in vchoice (globale) porta dei problemi?
Ho provato a compilare il seguente
mini-programma: (abbi pazienza... ;-) )
#include <stdio.h>
#include <string.h>
int vchoice;
int main(void) {
   int opt2;
   do {
      printf("\nVisualizzare i risultati intermedi? (s/n)");
      opt2 = fgetc(stdin);
   } while (!strchr("snSN", opt2));
   if (strchr("sS", opt2)) vchoice = 1;
   else vchoice = 0;
   if (vchoice) fgetc(stdin);
   return(0);
}
e non mi dà alcun warning!
Pourquoi?
Grazie,
@le

Per caso il compilatore presuppone che vchoice sia sempre zero?
Puoi postare l'intero codice ?
Provo a compilarlo.


 Provo a compilarlo.
Te lo potrei spedire in privato.
Quello è un indirizzo valido?
Se no, puoi spedirmi quello giusto a
zipoli at 
freemail.it
 ?
@le
Newsgroup: it.comp.lang.c
Titolo: Manuali

Qualcuno sa dirmi dove scaricare GRATIS manuali di programmazione?
Grazie.

 Grazie.
http://ada2.unipv.it/biblio/trickyc/trkcfrm.htm
Qui trovi Tricky C, un buon testo, liberamente fruibile, anche se un pò
datato. Ciao

Luca Bartoletti wrote:

Oltre che datato e' anche un pessimo testo con vari errori (cerca su Google
su questo gruppo per una spiegazione dettagliata).
Alcuni link:
http://www.lysator.liu.se/c/
http://www.strath.ac.uk/IT/Docs/Ccourse/
http://www.hert.org/docs/tutorials/#C
http://www.ilos.net/~corvus/TutC/index.html
Altri sono passati su questo NG... sempre su Google si possono trovare
maggiori informazioni.
-- 
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."

Ma in italiano non si trovano?!?
Non sono molto bravo con l'inglese.

tricky c è in italiano. Se no trovi molti appunti e dispense su tutti i siti
universitari

 Non sono molto bravo con l'inglese.
Ti conviene rimediare, se ti interessa l'informatica :)
In italiano c'e' anche qualcosa su Gapil (per l'url esatto usa Google, mi
pare sia 
gapil.firenze.linux.it
 a memoria) e su Appunti Linux.


Newsgroup: it.comp.lang.c
Titolo: due domande impostazioni Microsoft Visual Studio

Ciao, due domande sulle impostazioni di Microsoft Visual Studio:
(1) Come si fa a settare il "livello di guardia" degli warning?
     Cioè, in modo che il compilatore segnali all'utente quanti
     più warning possibili ?
(2) Come si fa a settare visual studio in modo che non sia
     necessario ogni volta scrivere alla fine di un programma
     system("pause");  ?
Grazie

      system("pause");  ?
Metti un break point sul return della main() (lo metti, vero?)
o della funzione che ti interessa.
Queste sono le impostazioni di VC++ 6.0, le versioni piu'
recenti hanno un'interfaccia diversa. I pasi da seguire
sono, piu' o meno, gli stessi.
HTH
Bye, bye...

Newsgroup: it.comp.lang.c
Titolo: Help codici di errore!!!

Salve dove posso trovare i codici di errore che mi da il compilatore, o il
programma in esecuzione.
In particolare vorrei sapere un programma compilato correttamente, se
mandato in esecuzione ad un certo punto mi da: SEGMENTATION FAULT.
Che significa, e come risolverlo?
Grazie by Lujx

Che significa, e come risolverlo?
controlla di non aver messo dichiarazioni del tipo:
char* paperino;
senza poi fare allocazione dinamica.....
ciao
 Marco

 Che significa, e come risolverlo?
Che hai violato un segmento di memoria, cioe` hai tentato di accedere a
cose a te non accessibili (per vari motivi che qui non ho intenzione di
indagare). Per risolverlo, devi studiare un po' di piu` il C.
Bye,
 Emmanuele.
-- 
I ... Owe ... You ... Pain! -- Willow, "Tough Love"
GnuPG Key ID: 0x788E3A3A
GnuPG Key FP: 4DD0 C90D 4070 F071 5738  08BD 8ECC DB8F A432 0FF4
Newsgroup: it.comp.lang.c
Titolo: Debugging in remoto

Dunque uso una macchina virtuale linux e ciò che stiamo sviluppando
purtroppo non gira su OSX.
Vorrei però poter debuggare comodamente dal mio emacs su OSX, ho visto
gdb-remote ma mi par di capire che sia a più basso livello, a me
servirebbe qualcosa su TCP/IP.
Altrimenti dovrei far partire quell'emacs e usare emacsclient o fare
qualche altra magia, consigli?



 writes:
Mm chissà come ho fatto a postare due volte senza che gnus si
incazzasse...
Comunque forse funziona anche con gdbremote, ma da una semplice prova
--8<---------------cut here---------------start------------->8---
(gdb) target remote arch:9999
Remote debugging using arch:9999
Remote register badly formatted: T0506:0000000000000000;07:e064f615ff7f0000;10:90dabf1b037f0000;thread:25d4;core:0;
here: 0000000;07:e064f615ff7f0000;10:90dabf1b037f0000;thread:25d4;core:0;
--8<---------------cut here---------------end--------------->8---
e mi sa che non gradisce architettura/Os diverso (o cos'altro).
Qualche trucco per farlo andar?

 wrote:

di solito con gdb remoto uso la seriale, ma mi è sempre andato più o
meno bene (dopo qualche oretta ogni volta per ritirare su un sistema
nuovo...)
Una volta sola ho usato il tcp del gdb, ma che mi ricordi io è
praticamente uguale... prova a cercare info sulla connessione seriale,
magari trovi molte più informazioni visto che penso sia molto più
usata!
Ciao!

 qualche altra magia, consigli?
Devi vedere come funziona il modulo di debug di Emacs. 
In particolare l'output di gdb e di ssh gdb dovrebbe essere lo stesso. 
Il maciello potrebbe essere fargli capire le cose "piu' integrate". Se
no, non e' emacs, ma c'e' questo:
<
http://developer.apple.com/mac/library/DOCUMENTATION/DeveloperTools/Con
ceptual/XcodeDebugging/300-Debugging%5FPrograms%5FRemotely/remote%5Fdebu
gging.html>
Io con un problema simile al tuo andai di vi+gdb da cli e amen... se
pero' ci sono metodi piu' furbi, ascolto volentieri.
-- 
-riko

 pero' ci sono metodi piu' furbi, ascolto volentieri.
Sono lieto di annunciare che ci sono, ed è magnifico :)
--8<---------------cut here---------------start------------->8---
M-x gdb --annotate=3 /ssh:remote:remote_file
--8<---------------cut here---------------end--------------->8---
e poi praticamente fa tutto lui, il gdb in realtà che usiamo è quello
della macchina remota, ero quasi commosso quando l'ho visto all'opera la
prima volta :D

Dimenticavo, consiglio di aggiungere questo al vostro .emacs
--8<---------------cut here---------------start------------->8---
   (setq gdb-many-windows t)
--8<---------------cut here---------------end--------------->8---
così tutte le finestrelle in modo IDE-like spunteranno automaticamente!
Newsgroup: it.comp.lang.c
Titolo: help Vettori!!!

Ciao a tutti,
devo implementare un vettore di puntatori di cui però
non conosco la grandezza a priori.
Qualcuno di voi sa darmi una dritta...
Grazie in anticipo.
Salvatore


I'm not prejudiced, I hate everyone equally.

Newsgroup: it.comp.lang.c
Titolo: Potete aiutarmi con un programma?

ciao
mi chiamo Aldo e dovrei scrivere un programmino in C che prende i dati in
ingresso dalla porta seriale ma non ho trovato da nessuna parte il mondo di
indirizzare l'input sulla porta seriale!
sapreste dirmi qual'è la riga di codice da usare?
grazie
Aldo
--
Catal u Quaratin
ICQ: 69609121

 wrote in message
8qf8st$f60$1...@nread1.inwind.it...


impostare tutti i parametri neccessari per poter inizializzare la porta.
sono funzioni standard? sul K&R non le trovo
-------------------
ara...@lohobbitelatorre.org

 wrote in message
39cda09b...@news.nettuno.it...



Confermo quasi tutto, le funzioni inportb() e outportb() non sono
standard e quindi il programma che le usa non e' portabile ed inoltre
non e' detto che tutti i compilatori riconoscano le due funzioni, ad
esempio il vecchissimo Quick C non le supportava, ma aveva inp() e
outp() che sono del tutto equivalenti.
Per le impostazioni della seriale ti consiglio 
www.byondlogic.org
 ci
sono pure un paio di esempi in C!
Ciao, Obelix
PS: _Set per favore puoi correggere il bug R: di Outlook, la patch la
trovi su 
www.vene.ws
, grazie.

se hai il tempo e la voglia di sbizzarrirti un po', puoi cercarti qlc
(sfortunatamente qui non posso aiutarti) che descriva il 'significato' dei
vari registri della seriale e poi comunicarci direttamente ... 0x3F8, 0x3F9,
ecc. :)
ciao
MaRuLLa

Newsgroup: it.comp.lang.c
Titolo: Dubbi su malloc e sizeof [linux]

Salve,
ho un problema (come al solito).
se io faccio:
char *pass;
pass = (char *) malloc(128);
e poi leggo sizeof(pass) lui mi da come valore sempre 4. Suppongo questa 
sia la dimensione in byte del puntatore.
Ora... come faccio invece a sapere quanta memoria ho allocato? (nel mio 
caso 128 byte).
Il problema č che io faccio diversi realloc in base alla dimensione 
dell'input che la stringa deve contenere... ed ho bisogno di sapere in 
un dato momento qual'č la dimensione della stringa allocata per sapere 
se č sufficentemente grande o se devo ingrandirlo.
Grazie,
   Luca

 se č sufficentemente grande o se devo ingrandirlo.
non ho capito quale sia il tuo problema. Se i malloc e realloc li fai tu, la
dimensione č quella dell'ultimo realloc.
Ciao
-- 
none

 dimensione è quella dell'ultimo realloc.
Ok, a questo ci avevo pensato. Tuttavia vorrei sapere se esiste una 
funzione (o un diverso modo di usare "sizeof") per conoscere la 
dimensione di una regione di memoria riservata con malloc o realloc.
Ciao,
   Luca

 dimensione di una regione di memoria riservata con malloc o realloc.
P.S.: Sto cercando questa funzione solo per non dover gestire una 
variabile in più che mi darebbe piuttosto fastidio. Se la funzione 
esiste mi risparmierebbe tale variabile e mi risparmierebbe conti 
inutili. Tutto qui.


No.
ciao,
g.

 No.
Piu che altro non standard. Su Windows esiste _msize(), sotto Linux
mallinfo() se non ricordo male.
:-)
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 mallinfo() se non ricordo male.
mallinfo() da lo stato dell'allocatore.
La soluzione portabile:
typedef struct memory_ {
        size_t size;
        void *data;
} *memory_t;
memory_t my_malloc(size_t size) {
        memory_t ret;
        ret = malloc(sizeof(*ret));
        if (!ret)
                return NULL;
        ret->size = size;
        ret->data = malloc(size);
        if (!ret->data) {
                free(ret)
                ret = NULL;
        }
        return ret;
}
void my_free(memory_t p) {
        free(p->data);
        free(p);
}
ecc. L'overhead e` trascurabile.
Luca
-- 
Home: 
http://kronoz.cjb.net
Windows NT crashed.
I'm the Blue Screen of Death.
No one hears your screams.
Newsgroup: it.comp.lang.c
Titolo: Alcuni problemi

Ciao sa tutti, ho alcuni problemi con il linguaggio.
1)Come faccio a leggere dei parametri inseriti nella riga di comando
quando lancio il programma?
2)Come faccio ad utilizzare una libreria fatta con il TurboPascal in
C/C++ ?
Grazie in anticipo e scusate per il Xpost.
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
ATTENZIONE! Rimuovere "
riccar...@iol.it
"
dall'indirizzo email
Saluti by Riccardo
e-mail : 
riccar...@iol.it

 C/C++ ?
Non lo so!
Ciao,
- Salsi

C/C++ ?
la riscrivi in C/C++ 8-)
se proprio non puoi/vuoi perche` la libreria e` grossa poi fare :
- cerchi un disassembler di file TPU pascal. es: SPO, Sally Peephole
Optimizer, che non ho idea di dove ho messo, e non so se esiste ancora
ricompili tutti i file assembler, e crei una libreria C con LIB
dichiari le procedure 'pascal', e questo dipende dal compilatore.
problema + importante e` che il pascal Borland e` a 16 bit, percio`
devi usare un compilatore C a 16 bit. un buon compilatore pascal a 32
bit e` il GPC (GNU Pascal Compiler), pero` non e` compatibile al 100%,
e compila in formato COFF, insomma fai un po' te, comunque non e`
assolutamente possibile utilizzare i TPU del pascal in C.
[Ranger, email: 
ran...@queen.it
]
[
www.zuzzurello.com/computer/ranger
]

 C/C++ ?
Se hai i sorgenti i pascal puoi cercare con il p2c della GNU, un
convertitore pascal->C.
-- 
*** Gottardi Matteo ***
*** 
gma...@usa.net
 ***

Newsgroup: it.comp.lang.c
Titolo: Domanda deficiente! ma divertente!

Sono reduce dall' uso di gcc ma ora sto usando lcc per win32! La mia domanda
č questa (mi vergogno tanto): come si fa a fre le parentesi graffe? Su gcc
alt gr 7/0 ma qui su lcc boh!Lo so vi sto facendo scompisciare dalle risate,
almeno a qualcosa servo, ma vi prego aiutatemi!
Buone risate! :-)


Non dipende dal compilatore, ma solo da com'e' configurata la tastiera
(definizione generica)... in pratica dipende dal sisop che usi.
Sotto Windows le trovi ALT_GR+SHIFT+"[" per la graffa aperta,
ALT_GR+SHIFT+"]" per la graffa chiusa.
Oppure ALT+123 e ALT+125.
Sempre sotto dos/windows. Sotto linux dipende... in genere sono dalle
parti del 8 e del 9 della tastiera (accessibili se mi ricordo con
ALT_GR).
Mox

 wrote in message
ETBXPMPCaq2FNu...@4ax.com...


ALT_GR+ CTRL+SHIFT+([ oppure ])
Newsgroup: it.comp.lang.c
Titolo: Leggere ad un certo offset

Salve a tutti. Ho visto nelle specifiche dei .doc:
20	long	file_len	Size of document in bytes.
Per leggere quel record, ho fatto:
FILE *fp;
long lungfile;
[....]
fseek(fp, 0x20, SEEK_SET);
fread(&lungfile, sizeof(long), 1, fp);
Solo che per tutti i documenti viene fuori la stessa lunghezza (6).
Il tutto con Linux 2.0.33 e gcc 2.7.2.
Dove sbaglio ?
Grazie in anticipo.
-- 
Matteo Gottardi / 
goma...@tin.it
*Linux*, The choice of a _GNU_ generation

Il tutto con Linux 2.0.33 e gcc 2.7.2.
Semplice: quell'offset appartiene all'intestazione, è vero, ma non indica la
lunghezza del file, è riservato a qualche altro scopo ed è, evidentemente,
sempre o spesso pari a 6. Purtroppo non conosco questo formato, quindi non
ti so dire dove si trova la lunghezza del file nell'intestazione...

 fseek(fp, 0x20, SEEK_SET);
boh, sicuro che il 20 sia esadecimale ?
---
Ranger, togli .fr dal mio indirizzo per rispondere
http://members.tripod.com/%7Eranger_rg/

Newsgroup: it.comp.lang.c
Titolo: problema sulla programmazione in c

Non riesco a trovare il sistema per fare un programma che data una cifra xy
la inverta in yx.Qualcuno sa dirmi come fare. Grazie



fammi capire...tu vuoi che data ad esempio la cifra 243, il programma
te la inverta in 342 ???
se è solo questo penso che un modo semplice è di convertire la cifra
in una stringa, assegnarla ad un array, invertire le posizioni
dell'array e riconvertire l'array in un intero.
oppure, dato che 243 è 2*100 + 4*10+3, potresti farlo diventare
3*100 + 4*10 + 2 con un ciclo un pò più lungo

 wrote in message
kclY5.7021$D8.1...@twister2.tin.it...


Newsgroup: it.comp.lang.c
Titolo: si ferma al 4° case!

sempre io!
...nello stesso programma: mi succede che le funzioni richiamate nei case 5
e 6 non vengano eseguite! ..esegue solo le prime 4!!
...dipende dallo switch perchè se metto la 6 alla posizione 3 (per es) me la
esegue!
come mai????
#include <stdio.h>
#include <stdlib.h>
#define DIM 100
struct ind {
 char nome[15];
 char cognome [15];
 int età;
 char via[40];
 unsigned long int cap;
 char citta[20];
 char prov [2];
 char tel[10];
} indirizzi [DIM];
void inizia_lista (void);
void inserzione (void);
void cancella (void);
void cancellaeta (void);
void cancellanome (void);
void elenca (void);
int menu (void);
int elemento_libero (void);
void main (void){
 char scelta;
 inizia_lista();
 for (;;){
  scelta=menu();
  switch (scelta){
   case 1:
    inserzione();
    break;
   case 2:
    cancella();
    break;
   case 3:
    cancellanome();
    break;
   case 4:
    elenca ();
    break;
   case 5:
    cancellaeta();
    break;
   case 6:
    exit (0);
  }
 }
}

 wrote in message
news:wTdQ7.260975$sq5.12...@news.infostrada.it...


 ha scritto nel messaggio
news:CRmQ7.262414$sq5.12...@news.infostrada.it...


 ha scritto nel messaggio
news:Y0vQ7.265907$sq5.12...@news.infostrada.it...


reso conto che il problema era una cazzata immane!!!!
E giustamente in questo messaggio hai lasciato le 300 righe del
messaggio precedente. Grazie.
-- 
Saluti,
    Mardy
http://castellina.org/interlingua

Eheh i poveri comuni mortali senza aids ops adsl ;-)
Newsgroup: it.comp.lang.c
Titolo: return x o return(x)?

Con il C standard (ANSI?) qual'e' la forma corretta per usare return (per
uscire dalle funzioni):
return x;
oppure
return(x);
?
In altri termini, return e' un'istruzione o una funzione? Io propendo per
la prima ipotesi, ma molto spesso vedo usata la seconda forma...
TIA a chiunque voglia soddisfare questa mia (banale) curiosita'.
Bp

Bp ha scritto nel messaggio <01beb816$e02d5090$a925b8c2@develop>...

return non e' una funzione.
Il fatto di mettere le parentesi non significa che sia una funzione (nemmeno
if(,,) lo e').
Per quanto riguarda lo standard credo tu possa usare entrambe le forme, nel
senso che la prima e' quella classica, ma la seconda non e' sbagliata e va
bene lo stesso.
Personalmente ad esempio uso la seconda se x e' una espressione.
Marco

la prima ipotesi, ma molto spesso vedo usata la seconda forma...
"return" e' un'istruzione.
Nei primi anni del C l'uso delle parentesi era obbligatorio e chi ha
imparato il linguaggio in quegli anni e' ancora convinto che sia
cosi'.
A prescindere dal C standard, comunque, il loro uso e' del tutto
opzionale.
Anche per sizeof vale la stessa cosa, in determinate circostanze.
Trovi la conferma sul K&R I a pag. 204 in cui l'istruzione "return" e'
definita come :
return ;
oppure 
return espressione ;

 if(,,) lo e').
E' vero, e' stata una mia svista.
Grazie comunque.
Bp

...
...
Grazie delle spiegazioni, sei sempre molto preciso.
Bp

Newsgroup: it.comp.lang.c
Titolo: dubbio socket

Ciao a tutti,
per rinfrescarmi la memoria sto facendo un programmino in C (la piattaforma 
e' linux) che mi fa l'equivalente del comando lynx --source, cioè mi scrive 
sullo stdout un file preso via http. Mi e' venuto un dubbio forse 
elementare: qual e' il miglior modo per mettere su schermo tutto quello che 
viene letto da un socket? Attualmente faccio una cosa cosi':
char buf[1024];
...faccio la richiesta http e poi...
while (recv(sockfd, buf, 1024, 0))
printf("%s", buf);
Ho dei grossi dubbi su quel while recv: ci sono altre soluzioni, come avere 
un buffer che cresce con una malloc o cose simili anziche' quel buffer di 
dimensioni fisse? Nelle comunicazioni con socket qual'e'  in genere la 
dimensione dei blocchi? Forse il buffer dovrebbe avere le dimensioni della 
MTU o e' indifferente? Qual e' l'uso comune?
Grazie a chiunque risponda
Bill

 dimensioni fisse? 
l'alternativa sarebbe leggere tramite ioctl i dati in pendenza sul socket,
conoscere la dimensione, allocare dinamicamente il buffer ed effettuare la lettura
credo sia + corretto, eviteresti eventuali errori ...
però ricordati di volta in volta di rilasciare la memoria.... altrimenti prima o poi termina
ciao
cod

Newsgroup: it.comp.lang.c
Titolo: dichiarazione strana di variabile

Ragazzi cosa significa una dichiarazione del genere?
int i : 1;
Grazie
jk

 int i : 1;
Anche niente, messo così.
Immagino che sia all'interno della definizione di una struct, il che 
significa che il membro i è grande 1 bit. 
-- 
---
In silenzio anche un idiota sembra intelligente. Ma non c'è problema,
l'idiota vuol sempre dire la sua.
Newsgroup: it.comp.lang.c
Titolo: MAnuale C - C++!!!

Sto cercando (anche perchè non so nemmeno se esista) un manuale che ti
illustri la sintassi di TUTTE le funzioni del C o del C++.
Potete aiutarmi?
Meglio se si trovi in rete!
Grazie
Giuseppe
--
Eliminare NOSPAM dall'indirizzo per rispondere in e-mail.
GRAZIE.

Potete aiutarmi?
Non so' per il C++ (probabilmente però il link è lo stesso), ma
potresti guardare su 
www.delorie.com/djgpp
.
Questo è il sito ufficiale del DJGPP (compilatore C e C++). Tra le
varie documentazioni, c'è anche una guida completa a tutte le
funzioni.
Ovviamente, come ben saprai, i compilatori utilizzano varie librerie
di funzioni non standard, quindi quello che trovi a questo link va'
beniussimo... sul DJGPP, ma non è detto che sia portabile su altri
compilatori.
Un'altra guida è quella fornita con il compilatore Borland C++ 5, se
conosci qualcuno che lo utilizza copiati i file di help.

]




Newsgroup: it.comp.lang.c
Titolo: errore di compilazione in una strana dichiarazione

sto cercando di ottenere una DLL da un vecchio codice C che esegue dei
calcoli complicati.
Il codice e' stato scritto anni fa da persone che non lavorano piu' in
ditta.
Il file make che accompagna il codice indica che il compilatore
utilizzato era il MASM 6.0, che non ho (BTW lo sto cercando: se
qualcuno vuole venderlo, regalarlo o indicarmi dove trovarlo, ne sarei
felicissimo).
Dato che ho invece il BCC v. 4.5, ho provato a compilare con quello.
Ottengo un errore durante la compilazione di un file .H .
Molto semplificata, la dichiarazione e':
typedef struct _RADP
{
  int wf;
  union _FORMATSPEC
  {
    int rwf;
    int pwf;
  };
} VF;
Temo fortemente che quello che va bene per MASM non va bene
(necessariamente) per BCC.
1. c'e' un modo di trasformare la dichiarazione perche'  BCC l'accetti
?
2. c'e' uno switch di BCC che lo "convinca" ad accettare anche questa
dichiarazione ?
Grazie
Duilio Foschi

felicissimo).
errata corrige:
volevo dire MSC ( e non MASM)
Scusate
Duilio Foschi
Newsgroup: it.comp.lang.c
Titolo: Invio file tramite socket

Ciao...
ho creato un prog in C che tramite socket esegue l'invio di
parametri e file ad una pagina che poi esegue le operazioni restituendo
una pagina html di risultato.
Questo prog non fa altro che simulare l'invio di un <form> con i parametri.
Il problema è che il form contiene anche l'invio di un file:
tramite rfc penso di aver trovato la specifica di invio...
però come output non mi restituisce nulla!
praticamente faccio questo:
invio:
"POST 
http://sito/pagina?esegui=ok
"
"Content-type: multipart/form-data, boundary=003488740345\r\n\r\n"
"--003488740345\r\ncontent-disposition: form-data; 
name=\"nomeCasellaTesto\"\r\n\r\n"
"password\r\n"
--003488740345\r\ncontent-disposition: form-data; name=\"upload\"; 
filename=\""
segue header del tipo, il file di testo e
"--003488740345--\r\n"
"HTTP/1.0"
ma come ho detto non restituisce nulla!
Chi ha già affrontato il problema o sa la sequenza esatta??


Perche' su un newsgroup dove si parla di C++ standard fai una domanda su 
HTTP, socket e quant'altro, che nel C++ non appaiono nemmeno di sfuggita?
-- 
Mat/tia Belletti - Graduate student @ 
cs.unibo.it
ICQ: 33292311    - email: 
mbel...@cs.unibo.it
IRC: RedGlow     - site(s): 
http://mbellett.web.cs.unibo.it/
Jabber: RedGlow  - Linux registered user 299762 @ machine 213003

 HTTP, socket e quant'altro, che nel C++ non appaiono nemmeno di sfuggita?
 s/\+\+//


Sii il mio sed di fiducia ;)


 Sii il mio sed di fiducia ;)
cosě hai rovinato la poesia
 
-- 
none

 però come output non mi restituisce nulla!
Sono riuscito ad avere la restituzione dal server, ma stranamente
non ci sono i tag html di contorno al testo restituito!
Qualcuno sa il motivo di questo???
P.S. scusate per l'argomento altamente OT :-[

 P.S. scusate per l'argomento altamente OT :-[
Eh, no che non ti scuso. Errare e' umano, ma perseverare e' diabolico 
pero', che diamine!


Newsgroup: it.comp.lang.c
Titolo: Funzioni MySql in C

Salve, 
mi chiedevi se ci fossero delle funzioni in C per la gestione del
database MySQL e/o altri!
Avevo sentito parlare di qualcosa ma non sono mai riuscito a trovare
niente di interessante!
Grazie!

 ha scritto nel messaggio
news:ac0cbe9d.04100...@posting.google.com...

Dai un'occhiata qui: 
http://www.synnottsoftware.com/tutorials/mysql.html
ciaoooo
Newsgroup: it.comp.lang.c
Titolo: C x Mac <---?---> C x Win

Salve :->
Qualcuno mi sa xfavore spiegare se c'e' differenza tra il C x Mac e il C
x Win..? e mi sapete indicare dove posso trovare un buon compilatore C x
Mac (possibilmente freeware) e un po di robba sul C x Mac..
Grazie a chiunque mi Risponda ^_^
alex (chucky)

x Win..?
Nessuna.
Quello che può cambiare sono le eventuali librerie per le librerie non
standard (gestione delle finestre, colori etc.).

 wrote:

GRAZIE :->

 C x Mac (possibilmente freeware) e un po di robba sul C x Mac..
http://www.idiom.com/free-compilers/
http://perso.wanadoo.fr/gilles.depeyrot/DevTools_en.html

x Win..?
Non esiste, volendo essere formali, un C x Mac e un C x
Windows.  Esiste il C, come linguaggio standard, e le sue
diverse implementazioni, sotto qualunque piattaforma.
Generalmente, la programmazione del sottosistema grafico su
qualunque piattaforma non e' portabile.
Non puoi, cioe', trasportare del codice scritto per Mac a
Windows in modo del tutto indolore.
La programmazione per Windows prevede che tu utilizzi un set
di API che astrae l'interfacciamento con molte parti del
sistema (dal video, alla tastiera, alle stampanti, ecc...).
Programmare con le API nude e crude e' molto scomodo ed e'
per questo che, generalmente, ci si affida a dei framework
specifici (vedi MFC/WTL/ATL/VCL, ecc...) distribuiti con
determinati compilatori.  Ora con .NET, MS ha rivoluzionato
un po' tutto, il linguaggio principe e' diventato C# e il
sistema ha integrato molte di quelle funzioni che fino ad
oggi sono svolte dai framework citati.
La programmazione per Mac non la conosco quindi non so dirti
che differenze sostanziali ci sono con quella sotto Windows,
ma il principio cardine (uso di API con compilatori
specifici) dovrebbe essere valido anche per Mac.
-- 
Andrea Laforgia (
walkie...@libero.it
)
"Usenet is a strange place" [Dennis Ritchie]

 La programmazione per Wind..... eccc
100000 Grazie a tutti .... :->
Newsgroup: it.comp.lang.c
Titolo: scanf e fflush

Salve a tutti,
sono alle prime armi con il C e vorrei un chiarimento su una questione forse
banale.
In un semplice programma che legge tre dati in input (una stringa, un char e
un intero)
ho la necessità di usare fflush altrimenti non funziona.
Il frammento del programma:
  for(i=0;i<n;i++){
    fflush(stdin);
    printf("\nDATI PERSONA %d:\n",i+1);
    printf("---------------------------------\n");
    printf("Nome: ");
    scanf("%s",&nome[i]);
    fflush(stdin);
    printf("Sesso (m/f): ");
    scanf("%c",&sesso[i]);
    printf("Statura (cm): ");
    scanf("%d",&statura[i]);
    printf("\n");
   }
 
E' normale tutto cio' in C? O c'e' qualche altro metodo migliore per farlo ?
Grazie infinite.
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 ho la necessitŕ di usare fflush altrimenti non funziona.


 Grazie a chi vorrà illuminarmi :-))
Con gcc/mingw32  
	fflush(stdin)
non fa niente. Il linguaggio C non definisce l'effetto di
fflush(stdin)
-- 
Horst

Newsgroup: it.comp.lang.c
Titolo: inclusione librerie

Ho un dubbio.
Quando scrivo
#include <xxxxx.h>
int main ()....
e poi compilo gcc -o file file.c
il compilatore inserisce la libreria relativa a xxxx.h
perche' allora per la libreria matematica (ad esempio) si fa
gcc -o file file.c -lm   ?
non basterebbe il relativo include?

Newsgroup: it.comp.lang.c
Titolo: array di puntatori a funzioni

posso creare un array di puntatori a funz ed inizializzarlo con
funzioni dello STESSO tipo (stesso numero e tipo di argom e stesso
tipo di return )
int effe(int,int)
int gi(int,int)
int (*funzp[])(int, int)={effe,gi}
se nel main uso funzp[0](2,3) al posto di effe(2,3) ottengo stesso
risultato, bene.
DOM1)
se l'array lo inizializzo dopo la sua dichiarazione 
nt effe(int,int)
int gi(int,int)
int (*funzp[2])(int, int);
funzp[0]=effe;
funzp[1]=gi;
perche' ottengo errore???
DOM2)
se  gi e' del tipo
int gi(int)
int (*funzp[])(int, int)={effe,gi}
NON funziona piu'
come posso creare un array di puntatori a funzioni DIVERSE (per numero
di arg e tipo ritornato) ??
grazie

c...@iol.it
 wrote:
[ snip ]
cii>se l'array lo inizializzo dopo la sua dichiarazione 
cii>nt effe(int,int)
cii>int gi(int,int)
cii>int (*funzp[2])(int, int);
cii>funzp[0]=effe;
cii>funzp[1]=gi;
cii>perche' ottengo errore???
[root@fokhouse /tmp]# cat >funz.c
void test()
{
int effe(int, int);
int gi(int, int);
int (*funzp[2])(int, int);
funzp[0] = effe;
funzp[1] = gi;
}
[root@fokhouse /tmp]# gcc -c funz.c -Wall -ansi -pedantic
[root@fokhouse /tmp]#
Quale errore ?
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: Segmentation fault su funzione ricorsiva

Spero di aver scritto bene l'oggetto.. Ad ogni modo ho questa funzione
//CALCOLA LA LUNGHEZZA DI TUTTI I RECORD RESTITUENDO LA LUNGHEZZA
short int record_lenght(FIELD_DATA_t *campo,int Ncampi)
{
  if(Ncampi==0)
    return 0;
  else
    return htons((campo->FieldLen +1) +
record_lenght(++campo,--Ncampi));
}
che mi va in segmentation fault. Dove stà l'errore ?

 
Per favore, posta il codice completo che stai tentando di compilare.
Non postare "frammenti di codice"... Questo codice che hai postato
semplicemente non restituisce nulla, e se il compilatore te lo compila
senza alcun problema, allora puoi anche cambiare compilatore.
David
-- 
Linux Registered User #334216
Get FireFox! >> 
http://www.spreadfirefox.com/?q=affiliates&id=48183&t=1
Staff >> 
http://www.debianizzati.org
 <<

Come faccio a postarti 300 righe di codice . Perchè mai non
restituisce nulla? Spiegami per cortesia ... Se mi dai l'indirizzo di
posta ti spedisco il file. Contattami via mail a
simone...@hotmail.com
. Grazie

scuffio wrote:

cosa fa htons ? quanti campi ci possono essere ?
In ogni caso usare qui la ricorsione mi
sembra proprio una cosa inutile e dannosa.
Non ti basta fare un banalissimo ciclo for ??
ciao,
g.

Hai ragione ! Era per fare paratica con questo strumento ...

scuffio ha scritto:

Non restituisce nulla perché semplicemente non compila. Manca la
funzione main(). Manca l'inclusione delle librerie. Non è un programma C!
Non è buona "usanza" in Usenet spostare i thread in privato, perciò
continueremo a parlare qui.
Per quanto riguarda le «...300 righe di codice...» potresti sempre usare
un sito di no-paste e incollare qui l'url. Così non solo manteniamo il
thread su Usenet, ma diamo la possibilità, a chi voglia, di vedere il
codice completo.


 g.

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

ciao vorrei imparare a programmare in c sapete qualche sito dove ci sono
molti esercizi con soluzioni
grazie

grazie
A mio tempo lo avevo trovato con google mettendo come chiave "c
tutorial"
Alla prossima,
Giovanni Cappellini
http://giovacappo.cjb.net
ICQ 166932196
Newsgroup: it.comp.lang.c
Titolo: operatore di incremento

Un saluto a tutto il NG!
ho un dubbio sull'utilizzo di un operatore di incremento.
Il frammento:
idx++;
idx += UnpackInt( &line[idx], &intero );
viene correttamente compilato dal GCC, mentre la versione "compatta":
idx += UnpackInt( &line[++idx], &intero );
genera un warning del tipo:
../Networking.c:147: warning: operation on 'idx' may be undefined
grazie,
Alessandro

> idx += UnpackInt( &line[++idx], &intero );
http://c-faq.com/expr/index.html
Pleg 


idx viene auto-incrementato prima di essere usato come indice [++idx] 
nel parametro della funzione e poi deve essere incrementato del valore 
ritornato dalla funzione.  A seconda di come ragiona ed opera il 
compilatore potrebbe valuture idx senza tener conto 
dell'auto-incremento.  Per esempio salvando idx nello stack per 
riutilizzarlo al ritorno della funzione e quindi senza tener conto 
dell'incremento effettuato per passare i parametri alla funzione.
Ciao
Giovanni
-- 
   A computer is like an air conditioner,
   it stops working when you open Windows.
   Registered Linux user #337974  < 
http://giovanni.homelinux.net/
 >

../Networking.c:147: warning: operation on 'idx' may be undefined
E' un argomento dibattuto più volte: stai cercando di preincrementare
una variabile nella stessa espressione di assegnamento e questo è
sbagliato perché non sai esattamente quando il sistema eseguirà quel
calcolo. Se vuoi stare lontano dai problemi, non compattare al massimo
le espressioni (anche perché in termini di performance non migliori
nulla).

Newsgroup: it.comp.lang.c
Titolo: Matrici??

ciao a tutti..
devo usare delle matrici tridimensionali di float in un programma..
per ora le alloco come tripli puntatori a float.. ma si incasina perche' le
mette non contigue..
allora ho pensato a fare una unica malloc di dimensione pari alla dim totale
della matrice
 A=malloc(dim^3*sizeof (float))
 e poi di "legarci " la struttura matriciale.. in modo da indirizzarla con
M[i][j][k]..
mi dite come lo fareste voi?
cioe'..
&M[i][j][k]=A[i*dim*dim+j*dim+k)  ????   (dim e' la dimensione della
matrice..)
qualcosa del genere? qualcuno di voi ha mai provato una cosa del genere?
grazie in anticipo
Giorgio
ps. per le risposte in email togliete  _NOSPAM... grazie

 genere?
immagina la tua matrice: e' un parallelepipedo. se lo immagini composto 
da cubetti unitari (i float) il numero di cubetti necessari e' i*j*k 
(Vale anche per n dimensioni)
L'indice nella matrice dell'elemento (a, b, c) e' M[a + b*i + c*i*j]
Newsgroup: it.comp.lang.c
Titolo: Perchè non gira?

#include <stdio.h>
#include <conio.h>
void main(){
     int farh;
     clrscr();
     printf("\n\tProgramma di conversione gradi Farhnait e Celsious\n\n");
     for(farh=300; farh<=0; farh=farh-20)
        printf("%4d %6.lf\n", farh, ((5.0/9.0)*(farh-32)));
 }
Forse il problema sta nel decremento di farh?
Mr_G_

      for(farh=300; farh<=0; farh=farh-20)
                         ^^
for(farh=300; farh>=0; farh=farh-20)
Come esercizio, ragionaci sopra e cerca di capire perchè :-)

     for(farh=300; farh<=0; farh=farh-20)
Il tuo ciclo "for" puo' essere riscritto come :
farh = 300 ;
while (farh <= 0 )
{
      ... ;
 
      farh -= 20 ;
}
Ma e' ovvio che il ciclo non viene attivato se farh > 0.
La versione corretta e' 
for(farh=300; farh >= 0; farh=farh-20)
Andrea Laforgia
----
I guai ve li andate a cercare : 
quando Bill Gates annuncio' che avrebbe fatto scrivere 
Windows98 a Topo Gigio perche' non gli avete creduto ?

      for(farh=300; farh<=0; farh=farh-20)
                     ^^^^^^^
Questa deve essere la condizione di permanenza nel ciclo, non di uscita:
rimani nel ciclo finche' farh>=0, esci quando diventa farh<0; quindi
viene 
for(farh=300; farh>=0; farh=farh-20)
Ciao, Luca.
-- 
*******************************************************
  "C'e' un vecchio detto a riguardo delle reti che    
  recita: i problemi di banda possono essere risolti  
  con il denaro. I problemi di latenza sono piu' dif- 
  ficili poiche' la velocita' della luce e' una cos-  
  tante e non e' possibile corrompere Dio."           
 
                                     David Clark, MIT 
  Reply to 
bia...@maganet.net
*******************************************************

     for(farh=300; farh<=0; farh=farh-20); /* ciclo errato */
       for(farh=300; farh>=0; farh=farh-20); /* ciclo corretto */
Il ciclo parte da farh=300 si decrementa di 20 se (farh >=0), ma la
condizione deve essere vera, cioè deve dare 1 per poter eseguire il ciclo?
giusto?
Mr_G_

...

Ha ha ha ha. Sei un grande ;-)

 Ha ha ha ha. Sei un grande ;-)
Eh... ;-) ma è giusto: avrei potuto dare una spiegazione con parole mie
sul perchè è un errore, ma è meglio che lui prenda la mia segnalazione
come una "imbeccata" per andare a rivedere come funzionano i cicli for.

, 
grm...@tin.it
 says...
Io lo feci cosi:
--------------------------------------------------------------------
#include<stdio.h>
 void main()
{
char c;
double j;
printf("\nDigita 'a' per convertire da Fahrenheit in Celsius;\n\
digita 'b'per convertire da Celsius in Fahrenheit\n");
scanf("%c",&c);
if(c == 'a')
 {
 printf("Immetti la temperatura in Fahrenheit:");
 scanf("%lf",&j);
 printf("\nLa temperatura in Celsius Š:%.1lf\n",(((j-32.0)*5.0)/9.0));
 }
else
 {
  printf("Immetti la temperatura in Celsius:\n");
  scanf("%lf",&j);
  printf("\nLa temperatura in Fahrenheit Š: %.1lf\n",(((j*9.0)/5)+32));
 }
 printf("\n ***           lo so che e' una ciofeca  :)~\n");
}
-------------------------------------------------------------------------
Ciao!
Newsgroup: it.comp.lang.c
Titolo: AIUTATEMI! DEVO DARE L'ESAME!

Salve sono studente di Ingegneria Elettronica e dovendo dare un esame di
programmazione in C avrei bisogno di un buon editor
Sapreste consigliarmi quale? E dove posso trovarlo?
Siccome non vorrei spendere una lira sapreste indicarmi un sito da cui
poterlo scaricare?
Scusandomi per la tempesta di domande formulate vi ringrazio anticipatamente
Roberto

Io utilizzo l'ottimo UltraEdit. Lo puoi trovare al sito
www.idmcomp.com
 (il sito dell'autore). E' shareware, utilizzabile 45
giorni in modo gratuito e poi registrabile a 30 dollari.
Ciao!
Luca Menegotto.

Newsgroup: it.comp.lang.c
Titolo: programmino in C

Salve a tutti sono nuovo del gruppo
mi chiamo Roberto e sono di Pistoia
la mia esperienza di programmazione è piuttosto bassa e tutto quello
che so fare (poco ed arruffato) l'ho imparato da autodidatta o a
scuola (ITIS)
a scuola ho fatto diversi programmi in VBScript per farci ambientare
con i linguaggi
dopodichè siamo passati al C e si sono rifatti i medesimi programmi...
non siamo arrivati più in la di ordinare delle tabelle ed i vettori :-
(((
ho anche esperienza nel mondo dei microcontrollori (PIC) e della
programmazione degli stessi in basic e C
ho fatto in pratica un sacco di "hello world" ma niente di più
profondo
finita la presentazione passo al dunque:
qualche tempo fa ho fatto un programma in VBScript che mi permetteva
di leggere e trascrivere su un file di testo, la lista dei file di un
disco o di una directory del mio PC; inoltre mi permetteva di creare
un secondo file di testo con i file divisi in gruppi di grandezza
prefissata da me. il primo file lo usavo come una specie di tabella
dei file che avevo ed il secondo mi serviva per poter fare dei
raggruppamenti "calibrati" da poterli trasferire direttamente su CD o
DVD :-)))
rimettendoci le mani sopra per fare delle modifiche, mi sono accorto
che era troppo incasinato ed ho deciso di rifarlo da capo... in C.
se devo fare qualcosa di nuovo provo a passare ad un linguaggio più
"universale" ;-)))
quando feci il programma in VBScript mi appoggiai ad una guda trovata
in rete 
http://javascript.html.it/guide/leggi/27/guida-vbscript/
sullo stesso sito ci sono altre guide, ma non ho trovato niente che mi
spiegasse i comandi da usare per leggere un hard-disk e le proprietà
dei file come il tutorial sul VBScript (forse era troppo "prerciso"
per quello che dovevo fare... fortuna???)
c'è qualcuno che mi può consigliare qualche sito o qualche libro da
leggere per imparare a fare un programma con queste (ed altre)
funzioni???
ciao
Roberto

 per quello che dovevo fare... fortuna???)
Alcuni dei comandi che ti servono sono:
opendir
scandir
fstat
cercando in rete dovresti trovare tutte le informazioni che ti servono e 
gli altri comandi utili.
E.

 fstat
ma su windows non si usavano findfirst .. findnext e company ?
ciao
Pier Paolo


vedo che avete le idee chiare :-)))
ci sono in rete dei tutorial o dei corsi, con esempi funzionanti su
compilatore DEV C++, che mi possano dare una mano???
anche cercando le parole chiave che mi avete dato escono fuori troppe
notizie frammentate.
anche un libro mi potrebbe andare bene

 anche un libro mi potrebbe andare bene
Non č che non abbiamo le idee chiare... ma  mi pare di ricordare che 
opendir e company le trovi su linux...unix...  se lavori su windows... 
usi le API di win32 ....FindFirstFile.. FindNexFile
http://msdn.microsoft.com/en-us/library/aa364418(VS.85).aspx