mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c
Titolo: CGI in C

Questo è il mio codice:
#include <stdio.h>
int main(int arg, char *argv[]) {
 char ch;
 printf ("Content-type:text/html\n\n");
 printf ("<html><body><font face=\"Arial\">Hai inserito questi
dati:<br><br>");
 while ((ch=getchar())!=EOF) {
   if (ch == '&') printf("<BR>"); else
   if (ch == '+') printf(" "); else printf("%c",ch);
   }
 printf("\n\r");
 printf ("</font></body></html>");
 return 0;
}
Questa è la mia paggina:
<html>
<head>
  <meta http-equiv="content-type" content="text/html;
charset=ISO-8859-1">
  <title>A</title>
</head>
<body>
  <FORM ACTION="
http://www.razziatore.dns2go.com/cgi-bin/input.exe
"
method="POST">
     <INPUT NAME="NAME" TYPE="TEXT"><BR>
     <TEXTAREA NAME="TEXT"></TEXTAREA><BR>
     <INPUT TYPE="submit"><INPUT TYPE="RESET">
  </FORM>
</body>
</html>
Qutesto codice FUNZIONA!
ma io ho bisogno che invece di POST il codice funzioni anche con
GET....
Il Razziatore,
The Only Good Windows in an uninstalled Windows
-----------------------------------------------
E-MAILs : 
razzi...@usa.net
 (Primary),
 
IlRazz...@netscape.net
 (for Attachent)
WEB     : 
http://www.razziatore.dns2go.com/
ICQ     : 67552596

GET....
Devi fare in modo che il programma controlli con che metodo e'
stato chiamato. Se la variabile di ambiente "REQUEST_METHOD"
contiene "POST" allora leggi i dati da stdin, se invece
"REQUEST_METHOD" contiene "GET" allora devi leggere i parametri
dalla variabile di ambiente "QUERY_STRING".
Il tipo di formattazione dei parametri e' identico nei due casi.
HTH
Andrea
--
Andrea Griffini, Programmer
http://www.netservers.com/~agriff

dalla variabile di ambiente "QUERY_STRING".
Forse sai dovuto stare + specifico... uso LCC... non esiste nulla del
genere...


genere...
Credevo che fosse ovvio che parlavo delle variabili di ambiente.
Si accede tramite getenv()... dubito che un compilatore C non
implementi queste chiamate (anche se ad essere onesti non ho
mai usato LCC).  Le variabili di ambiente sono impostate
automaticamente dal WEB server prima di chiamare il programma
CGI.


 char *getenv(const char *name);
Ma non so come usarlo... ripeto non hai uno straccio di esempio...


Scusa, sono un idiota, ho capito, grazie di tutto e scusa il
disturbo....


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

Salve, avrei la necessità di memorizzare dei numeri in un array, poi
copiarli a coppie in un altro array per poterci fare dei calcoli ma..mi son
bloccato.
Praticamente se inserisco 123456 (solo numeri), l'array risultante dovrebbe
essere così:
array[0]=12   ;   array[1]=34    ;    array[2]=56
Alle coppie poi devo eseguire operazioni matematiche. Il mio problema è come
concatenare 2 elementi di un array in un elemento di un altro array.. Ho
provato con la funzione strncat() ma...mi pone anche il NULL..
Che possa fare?
Grazie
..::SNHYPER::..
--
Linux registered user  #249109
Linux registered machine #133922
PGP key Fingerprint = CB BB FC B2 43 69 2E 9C  27 9F C5 40 C3 F3 18 1A

"..::SNHYPER::.." <snh...@XXXhotmail.com> ha scritto nel messaggio
news:PhlR7.282664$sq5.13...@news.infostrada.it...

Puoi usare sprintf
Newsgroup: it.comp.lang.c
Titolo: [OT?]Librerie conio.h

Salve a tutti, mi sapete dire se la
librerie conio.h presente nel compilatore
djgpp , si possono usare anche con il Mingw?
e se si ,come?li copio nella cartella include
del Mingw?
Grazie a tutti
Ciao

 del Mingw?
Non e' standard, cmq - su mingw, credo tu debba usare le ncurses, sono 
praticamente identiche.
Copiare i file di header non serve a niente.
-- 
Mat/tia Belletti - Undergraduate 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

[...]
..., ti ringrazio!
Ciao

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

DOve posso trovare una buona guida per programmare in C.Sono un buon
conoscitore di Pascal ma non so dove mettere mano per quanto riguarda il C.
Grazie

 conoscitore di Pascal ma non so dove mettere mano per quanto riguarda il C.
   Comprare (ahime`, ma ne vale la pena), di Kernighan e Ritchie, "Il 
linguaggio C--Seconda edizione", per i tipi Jackson. Mai cifra fu meglio 
spesa, specialmente se gia` mastichi di programmazione.
PS: La prossima volta, usa un subject un po' piu` chiaro.
-- 
Alla prossima,
Marco
Newsgroup: it.comp.lang.c
Titolo: dup e dup2

Salve a tutti.
In un mio programmino devo utilizzare una funzione che legge da stdin e
scrive su stdout.
Devo reindirizzare tutto da e verso due files.
Utilizzo Linux... qualche idea?
Per il momento vedo quattro strade:
1) soluzione del buon scrittore di shell che si implementa le pipes a mano
... qualcosa di questo tipo (ma non capisco bene dal man il funzionamento
di dup e dup2):
	int oldstdin, oldstdout, src, trgt;
 
	src = open("fonte", O_RDONLY);	
	oldstdin = dup(STDIN_FILENO);
	dup2(src, STDIN_FILENO);
 
	trgt = open("obiettivo", O_WRONLY | O_CREAT);
	oldstdout = dup(STDOUT_FILENO);
	dup2(trgt, STDOUT_FILENO);
	// printf("C\b");  //leggi sotto per questa printf
	funzioneCheScriveSuStdoutLeggendoDaStdin();
	dup2(oldstdin, STDIN_FILENO);
	dup2(oldstdout, STDOUT_FILENO);
	/* close(src);    non dovrebbero servire, credo
	   close(trgt); */
Una cosa incredibile e' che lo stdout rimane il solito (cioe' la funzione
scrive su terminale, nel mio caso), a meno che io non "svergini" (scusate
il termini) quello appena "duppato" (mandate a letto i bambini) con la
printf che ho commentato (che, nota bene, non scrive nulla).
Commenti a questa soluzione?
2) soluzione losca da smanettone di scripts.
... mi compilo un file ti questo tipo
	int main() {
	  funzioneCheScriveSuStdoutLeggendoDaStdin();
	  return 0;
	}
... dopodiche', nel mio file....
 
	system("cat fonte | programminoDiCuiSopra >> obiettivo");
 
Commenti a questa soluzione (che sembra non voler funzionare comunque?
3) soluzione vegetariana: mi arrendo all'evidenza che non capisco un
cavolo.
4) soluzione idraulica: mi arrendo all'evidenza che non capisco un tubo.
Commenti a queste ultime due? Teneteli per voi, evitando di suggerirmi
la soluzione sessuale, in cui mi arrendo all'idea che non capisco un
*****, grazie :-)
Rony Cesana
ces...@cli.di.unipi.it
---___---___---___---
due persone su una 
sono schizofreniche;
non ch'io sia una di
quelle, ma io si'.

Commenti a questa soluzione (che sembra non voler funzionare comunque?
Ah, si`, un altro: col funzionamento non c'entra, ma
    programmino <fonte >>obietttivo
spreca meno risorse che non far partire un altro
processo ancora con cat -- ricorda che puoi avere
ridirezioni su standard input E standard output allo
stesso tempo (non a e da lo STESSO file, certo!-).
Alex
Newsgroup: it.comp.lang.c
Titolo: Stack trace

Ciao a tutti, qualcuno saprebbe dirmi se esiste un'opzione per il GCC 
per ottenere lo stack trace a runtime? Cioé, se faccio casino con i 
puntatori, mi piacerebbe che a runtime mi uscisse un messaggio di errore 
che indichi il numero della riga in cui ho commesso l'errore.
LCC lo fa, vorrei sapere come lo si può fare con GCC. Sto cercando con 
google ma non trovo l'opzione, idem sul sito gnu.
Grazie a tutti.

 che indichi il numero della riga in cui ho commesso l'errore.
man gcc
-mstack-check
-dk
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  |
+-----------------------------------------------------------+

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

Ciao raga!
Una curiosità : col C si possono scrivere interfacce utente(testuali e non
testuali)?
Ci sono delle librerie specifiche per questi compiti?
Perdonatemi se ho detto corbellerie!
Ciao!


Testuale: ncurses
Grafica: GTK (la prima che mi è venuta in mente)



in windows l'Api omonima :D


E, prima che si cominci, da ricordare che queste librerie non c'entrano 
col C++ standard, e quindi eventuali domande a riguardo non vanno qui :)
-- 
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

col C++ standard, e quindi eventuali domande a riguardo non vanno qui :)
Anche il C++ standard qui non c'entra nulla ghghghgh :P C C e ancora C
:P 

 :P 
Pardon, ogni tanto faccio confusione tra un newsgroup e l'altro :)


Pardon, ogni tanto faccio confusione tra un newsgroup e l'altro :)
No problem :P

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

qualcuno mi saprebbe dare la definizione canonica
di "stringa"
e "stringa di controllo"  ??
grazie mille!!!!!!!!

 e "stringa di controllo"  ??
stringa che definisce direttive di formattazione in alcune funzione di
I/O formattato
printf("%s\n",stringa);
"%s\n" e' una stringa di controllo 
ciao
luca

 di "stringa"
se non sbaglio: un'insieme di elementi alfanumerici trattati come 
singola unità, e non necessariamente come testo.
Leonardo
Newsgroup: it.comp.lang.c
Titolo: :-O cosa????

magari per voi la risposta e' ovvia, ma...
int i;
int main()
{
   printf("%d\n",i["a"]);
   return 0;
}
compilo ed eseguo cosi':
$ gcc prova.c
$ ./a.out
e sullo schermo vedo 97
perche'????????
-- 
Devaraja (Xdevaraja87^gmail^c0mX)
Linux Registerd User #338167
http://counter.li.org

 
perche' 97 e' il codice ASCII di 'a'.
perche' i viene inizializzato a 0.
perche'  V[x]  e' come dire *(x+V) e quindi
i["a"] e' equivalente a *(i+"a") ovvero "a"[i] che e' equivalente 
all'i-esimo
carattere del vettore di caratteri "a".
puoi anche provare a stampare
printf("%d %d %d\n", 2["abcd"], "abcd"[2], *("abcd"+2));
ciao,
g.

 printf("%d\n",i["a"]);
X[Y] equivale a *(X+Y) che equivale a *(Y+X) che equivale a Y[X].
Per i = 0, i["a"] equivale a *(0+"a"), quindi *("a"), quindi '\a'.
Max

Max M. ha scritto:

incredibile.. :-)
grazie a entrambi per le risposte...


Per i = 0, i["a"] equivale a *(0+"a"), quindi *("a"), quindi '\a'.
'\a' ???
Andrea

 
 'a'
Volevo vedere se eravate attenti. :)
Max
Newsgroup: it.comp.lang.c
Titolo: AIUTOOOOO URGENTE!!!!

Ciao a tutti!
Chiedo il vostro aiuto perchè una mia amica ha un bisogno urgente 
dell'esperienza nella programmazione che voi avete...
Lei deve realizzare il seguente programmino:
Si richiede la stesura in C di un programma che esegua le seguenti 
operazioni:
1- chieda all'utente il nome di un file, file1, (non binario) esistente, 
ed il nome di un altro file, file2, da creare;
2- ricopi dentro al file2 il contenuto del file1 aggiungendo all'inizio 
di ogni riga il numero progressivo della riga stessa;
3- conti il numero di caratteri e di linee del file1;
4- stampi a video tali dati;
5- scriva tali dati in binario, in formato int e long long int 
rispettivamente per il numero di righe e di caratteri, in file con nome 
a vostra scelta.
La parte relativa alla scrittura del file con le righe numerate può 
essere applicata al codice sorgente del programma stesso, in maniera 
simile a quanto segue:
file1
/* funzione che valuta i risultati */
double valuta(sim,rtb)
	double *sim;
	RTB *rtb;
{
	int count=0;
	double v=0;
	while(rtb[count].peso!=-1)
	{
	if (rtb[count].peso=!0)
	v+=rtb[count].peso*rtb[count].funz(sim,&(rtb[count].par));
	count++;
	}
	return v;
}
file2
  97:
  98: /* funzione che valuta i risultati */
  99:
100: double valuta(sim,rtb)
101: double *sim;
102: RTB *rtb;
Visto la nostra inesperienza nella programmazione in C vi sarei grato se 
qualcuno di voi ci aiutasse a fare la stesura di questo programmino 
inserendo possibilmente qualche commento che ci possa aiutare nella 
comprensione.
Grazie a voi tuttim per la disponibilità e aiuto.
 

 3- conti il numero di caratteri e di linee del file1;
#include<stdio.h>
 
  int main(int argc, char *argv[]){
  system("cp file1 file2");
  system("cat -n file1");
  }
  Sgrunt! >|-)  
<!--_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
                      The Hacking Pages   
 
www.lulli.net
 
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-->


Grazie per il tuo cortese aiuto :)))

Newsgroup: it.comp.lang.c
Titolo: grafico delle dipendenze tra i sorgenti

esiste uno strumento che da codice C in piu' file genera un grafico dei
legami dei vari file (penso sia qualcosa a che fare con UML). Mi servirebbe
per Linux dato che ho degli #include di <unistd.h>
In generale mi servirebbe uno strumento per visulaizzare come si legano i
vari  file di un programma
Grazie

...

Io non me ne intendo (mi sono appena avventurato nel C), comunque
prova 
http://sourcenav.sourceforge.net/
Dovrebbe offrire parecchie funzioni, e forse anche quella che cerchi
tu. Se usi Debian, dai un bel
# apt-get install sourcenav
Newsgroup: it.comp.lang.c
Titolo: un "case:" che non fa niente apparentemente

Salve a tutto il NG.
Una domanda:
perchè per contare quanti caratteri e numeri ci sono in una stringa 
(programma riportato sotto), questo esercizio trovato sul mio libro, usa dei 
"case:" che non fanno niente (solo dal "case:9")?
Non capisco la logica.
Per contare i caratteri non si faceva prima con un for (x=0; 
stringa[x];ecc...) ? E poi facevo un if, che se trovava dei numeri 
allora....
E come viene restituito il valore alla funzione main se la prima funzione 
numAlfa ha void (quindi non passa e non restituisce parametri) e poi non ha 
dei return al suo interno? E cosa è %2d ?
Queste ultime due domande credo abbiano risposta studiando i puntatori, ma 
per ora al capitolo che sono a studiare, il mio libro non ne parla. Magari 
sbricio più in là o faccio una ricerca su google...ma mi resta la prima 
domanda.
Grazie a chiunque possa darmi una mano.
Nicola
#include <stdio.h>
int numeri = 0;
int alfa   = 0;
char buf[80];
int i;
void numAlfa(void);
main()
{
  printf("\nInserisci stringa: ");
  scanf("%s", buf);
  numAlfa();
  printf("Ci sono %2d caratteri numerici\n", numeri);
  printf("Ci sono %2d caratteri alfabetici\n", alfa);
}
void numAlfa(void)
{
  for (i = 0; buf[i] != '\0'; i++)
    switch(buf[i]) {
      case '0':
      case '1':
      case '2':
      case '3':
      case '4':
      case '5':
      case '6':
      case '7':
      case '8':
      case '9':
                numeri++;
                break;
      default:
                alfa++;
                break;
    }
}

 E cosa è %2d ?
Un formato di printf per stampare a video un numero decimale usando un 
minimo di due caratteri.

Newsgroup: it.comp.lang.c
Titolo: Crack per Builder

Chi è che sa dove trovare un crack funzionante per la versione TRIAL
del Builder che si trova nel CD contenuto nel libro della Apogeo sulla
prima versione di questo bel compilatore (riduttivo chiamarlo così)?
Io ne ho trovati 3 diversi su astalavista, che servono per togliere
nag screen, time bomb e l'impossibilità di usare i file exe creati
all'esterno del compilatore, ma evidentemente sono per qualche altra
versione...nessuno funziona..sigh...
P.S. se non fossi un povero studente magari me lo comprerei, chi fa
del male al software e ai programmatori sono le piccole e medie
imprese che invece se lo potrebbero permettere

 imprese che invece se lo potrebbero permettere
R.P.S.: ti mangi qualche pizza in meno e vai un paio di volte in meno al
cinema e ti risparmi le 170.000 lire che costa la licenza per poveri
studenti.
Uno che ha una piccola o media industria che delle volte fa fatica a far
quadrare i conti e il software se lo compra lo stesso.
Newsgroup: it.comp.lang.c
Titolo: matrice

main()
{
int math[20][20];
come faccio a passarla ad una funzione???
come deve essere il prototipo???
Grazie

come deve essere il prototipo???
ad esempio cosě:
void printArray(int [][20]);
main()
{
  int math[20][20] = {0};
 
  printArray(math);
}
void printArray(int a[][20]) {
...
}
cioč devi tenere conto che nella definizione della funzione il primo
indice del vettore multidimensionale non č obbligatorio, mentre lo
sono tutti i successivi.
-- 
Ciao, Giuseppe

Quindi se volessi inserire gli elementi della matrice, dovrei scrivere nella
funzione di sotto, per esmpio
a[1][2]=3
e poi se volessi fare ritornare al main la matrice riempita, nel prototipo e
nel main come faccio???
Grazie ancora


nel main come faccio???
il C passa i vettori alle funzioni utilizzando automaticamente una
chiamata per riferimento (simulata), quindi non devi fare
assolutamente niente: se cambi i valori della matrice nella funzione,
te li ritrovi cambiati anche nel main. Come prima, il prototipo puņ
semplicemente essere: void modifyArray(int a[][20]); .
-- 
Ciao, Giuseppe
Newsgroup: it.comp.lang.c
Titolo: Editor per linux

Salve
mi sapreste consigliare un semplice editor che faccia sintax highlighting
del c, che possa aprire file multipli, che abbia magari un file manager
affianco, che giri sotto interfaccia grafica, che sia semplice e veloce ?
E' una cosa talmente banale, eppure non sono in grado di trovarlo, o ci sono
IDE che fanno tutto loro, ti creano file, cartelle e sotto cartelle, ma a me
non interessano, oppure ci sono editor semplici ma con mille difetti (tipo
non aprono file multipli, o sono difficili da usare, etc...)
Dimenticavo di dirvi: il utto deve girare sotto linux.
Dario
-- 
I hope we shall... crush in its birth the aristocracy of our moneyed
corporations, which dare already to challenge our government to a trial of
strength and bid defiance to the laws of our country.
THOMAS JEFFERSON

 affianco, che giri sotto interfaccia grafica, che sia semplice e veloce ?
ViM, Emacs.
Luca
-- 
Home: 
http://kronoz.cjb.net
Ligabue canta: "Tutti vogliono viaggiare in primaaaa..."
Io ci ho provato e dopo un chilometro ho fuso il motore e bruciato
la frizione...

 affianco, che giri sotto interfaccia grafica, che sia semplice e veloce ?
kwrite, kate.
-- 
~~~~Slaine Mc Roth~~~~
**Linux User# 312607**
Tutti coloro che conquisteranno la gioia dovranno dividerla.
La felicita' e' nata gemella.  (George Byron)

 Dimenticavo di dirvi: il utto deve girare sotto linux.
Per le prossime domande del genere: it.comp.os.linux.development.
-- 
Mat/tia Belletti - Undergraduate 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

 ViM, Emacs.
Mi associo, anche se la domanda sarebbe stata piu` it su
it.comp.os.linux.developement
it.comp.software.editor
Qui si parla di C standard.
-- 
RiK0
[ non credo negli schemi non vincenti ]
[     two is an odd prime number.     ]

 Per le prossime domande del genere: it.comp.os.linux.development.
Ok, scusate...

 ViM, Emacs.
Già che siamo OT... Qualcuno conosce un porting decente di Emacs per DOS e/o
Windows?
--
Cingar
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 Windows?
io conosco questo: 
http://www.xemacs.org/
ma ammetto che l'ho usato pochissimo (emacs non mi sta troppo simpatico).
ciao.

 Windows?
Buongustaio :-)
http://www.gnu.org/software/emacs/windows/faq2.html#where-precompiled
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Newsgroup: it.comp.lang.c
Titolo: sorgenti telnet

qualcuno sa indicarmi dove posso scaricare dei sorgenti di un sistema
client/server telnet molto, ma moooooooooolto, rudimantale??
grazie a tutti, ciao


dal codice src di linux?
cod
Newsgroup: it.comp.lang.c
Titolo: Aiuto per sintassi a me oscura

'sta roba viene da swscale.c (ffmpeg)
static const uint8_t  __attribute__((aligned(8))) dither_2x2_4[2][8]={
...
}
definisce una costante di tipo unint8_t, e fin qui ci arrivo, non
capisco il resto.
Grazie in anticipo.
-- 
                     Dona i tuoi cicli di clock alla ricerca!
 
http://boinc.berkeley.edu/
                          --------------------
        Lui guarda gli occhi e le mani delle donne...
        E' come comprare Playboy e leggere l'articolo di fondo.
        		-- Da "Volere volare"

 }
Il resto da capire � solo __attribute__((aligned(8))) che con il
compilatore con cui � da compilare quel codice imposta presumibilmente
l'allineamento a 8 bit per il contenuto dell'array (dither_2x2_4 �
semplicemente il nome di un array di 2x8).
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 semplicemente il nome di un array di 2x8).
grazie.
-- 
                     Dona i tuoi cicli di clock alla ricerca!
 
http://boinc.berkeley.edu/
                          --------------------
           This signature was automatically generated with
           Signify v1.14.  For this and other cool products,
           check out 
http://www.debian.org/

 l'allineamento a 8 bit 
8 byte :)
Per l'OP: visto che l'array e' di 16 byte, avrei trovato piu' naturale
allinearlo a 16 byte, cosi' che stesse in un'unica cache line, per essere
sicuri di caricarlo in un solo colpo.
Pleg

 8 byte :)
S�, ovvio, 8 byte, lapsus :-)

Newsgroup: it.comp.lang.c
Titolo: intdoublefloat

ciao gioventů....
sicuramente saprete aiutarmi.
"Non riesco a fare una divisione!!!!"...eppure le elementari le ho finite!!!
nel senso che piů o meno quello che faccio č questo:
double L=0
int Array[i]
for i....
L=1/Array[i]
mi restituisce sempre L=0.
Siccome leggevo su un manuale che nella divisione tra interi, si approssima
all'intero inferiore....
come faccio a farmi dare anche i numeri dopo la virgola???

ciao gioventů....
sicuramente saprete aiutarmi.
"Non riesco a fare una divisione!!!!"...eppure le elementari le ho finite!!!
nel senso che piů o meno quello che faccio č questo:
double L=0
int Array[i]
for i....
L=1/Array[i]
mi restituisce sempre L=0.
Siccome leggevo su un manuale che nella divisione tra interi, si approssima
all'intero inferiore o superiore...non so....




:
Outlook Express, quante volte vuoi postare oggi?
Outlook Express, quante volte vuoi postare oggi?
Outlook Express, quante volte vuoi postare oggi?
:P

Il problema e' appunto nei 2 tipi int, basterebbe che uno fosse un
numero in virgola mobile e tutto si risolverebbe.
Quindi:
L = 1.0 / Array[i] /* converte in float e poi calcola */
Un'alternativa valida sarebbe usare il cast, cosa non utile nel tuo
caso, ma che potrebbe servirti
double L=0;
int a=1;
L = (double)a / Array[i];
Forzi uno dei 2 numeri ad essere convertito in double (in questo caso
/a/), Array[i] viene convertito automaticamente a double dal
comiplatore e memorizzato in /L/.
Nota: non funzionerebbe fare una cosa del tipo
L = (double) (1 / Array[i])
perche' convertiresti il risultato (gia' troncato) in un float.
-- 
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."

CHE DIO TI BENEDICA!!!!!
P.S. Ho un po di problemi con outlook,si vede????

 :P
Ci risiamo alle solite!
Certo che solo da pochi giorni sto osservando questo newsgroup (il primo per
me) e già mi avete convinto che MS è l'acronimo di Molti Soldi, ma poca
sostanza!
Ciao.

 sostanza!
se così fosse , sarebbe stato MS;mps...eh!!!

 mi restituisce sempre L=0.
1) Ma l'array l'hai inizializzato?
2) prova con L = 1. / Array[i]
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG
Newsgroup: it.comp.lang.c
Titolo: Passaggio di stringhe

Non riesco a passare una stringa da una funzione al main. So che si fa con i
puntatori, ma non mi passa tutto l 'array, solo la prima posizione (che è
quella che va indirizzata per visualizzare tutta la stringa). La stringa la
voglio visualizzare sul main.
E' possibile?
--
Simone Bogi
"La volpe ne sa tante,
una il riccio, importante"
(Archiloco di Paro, V° sec. a.C.)

 la voglio visualizzare sul main. E' possibile?
<code>
char * funzione()
{
    char * s;
    if ( (s = malloc(6)) != NULL)
        strcpy(s, "Paolo");
    return s;
}
</code>
La stringa la devi allocare dinamicamente o viene distrutta come esci dalla 
funzione (ignorando il caso in cui la stringa locale sia dichiarata come 
static).
-- 
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: Procedura in C per il recupero di cluster danneggiati di un HDD

Mi servirebbe una procedura in C per il recupero di cluster danneggiati di
un HDD. Dovrei copiare il contenuto dell'HDD danneggiato in un secondo
settore per settore. Grazie.

Mi servirebbe una procedura in C per il recupero di cluster danneggiati di
un HDD. Dovrei copiare il contenuto dell'HDD danneggiato in un secondo disco
settore per settore

 settore per settore
Ti conviene rivolgerti a qualche applicazione pronta, specifica per
il S.O. che usi (e anche ad un ng relativo a quel S.O).
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Newsgroup: it.comp.lang.c
Titolo: User screen con DDD

Ciao a tutti; per favore, come si puo' "vedere" lo user screen 
debuggando con DDD programmi console? Saro' cecato, ma non ho letto 
granche'... Ciao.


View -> Execution Windows (Alt+9)
Ciao
Giovanni
-- 
   A computer is like an air conditioner,
   it stops working when you open Windows.
   Registered Linux user #337974  < 
http://giovanni.homelinux.net/
 >

 
Grazie.
Newsgroup: it.comp.lang.c
Titolo: Unire C e Fortran

Se ho un algoritmo scritto in C e uno scritto in fortran, posso fare
in modo che il mio programma principale in Fortran "veda" l'algoritmo
in c come sottoprocedura o c'è qualche limitazione ?????????
(Mi può andar bene anche il contrario: che l'algoritmo in C veda
quello fortran come sottoprocedura)

 wrote in message
news:mn03c0pm1192m9mj9...@4ax.com

se seguono entrambi la stessa convenzione di chiamata a funzione, non
dovrebbero esserci problemi: produci gli obj separatamente e li linki
assieme.
L'unico vero problema e' che quanto hai chiesto coinvolge problematiche
riguardanti il S.O., la convenzione sulle chiamate a funzione, i
compilatori usati. Niente a che vedere con il "C".
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG


In rete puoi trovare vari suggerimenti. Cfr. ad esempio:
http://owen.sj.ca.us/rkowen/howto/FandC/FandC.call.html
http://www.aei.mpg.de/~jthorn/c2f.html
Tieni presente che, come gia' detto, l' argomento non e' presente nello 
standard e quindi ogni soluzione e' dipendente dai compilatori/OS che 
utilizzi.
Una domanda IT a cui non so rispondere e': esiste qualche discussione 
per standardizzare nel C l' interoperabilita' con altri linguaggi ? 
Qualcosa di analogo a quanto fatto dallo standard 2003 del Fortran con 
l' interoperabilita'  Fortran/C ? Non necessariamente col Fortran.
Giorgio
Newsgroup: it.comp.lang.c
Titolo: valori esadecimali

ciao ho un vettore di valori esadecimali e devo scriverli su un file, ma ho
un'infinita' di problemi:
quando devo andarlo a scrivere su un file ( uso l'api WriteFile, ma non e'
questo il problema, per questo penso di non essere O.T. ) ho dei seri
problemi nel capire quando sono alla fine del vettore... ecco l'esempio
// vettore
char szMsg[8] = { 0xff, 0xff, 0xf5, 0x05, 0x01, 0x00, 0x00, '\0' };
// variabile che mi memorizza i bytes scritti
 DWORD dwWritten = 0u;
// risultato della WriteFile()
 BOOL bResult = FALSE;
// contatore utilizzato nel ciclo while...
 UINT i = 0u;
// lunghezza del vettore piu' carattere terminatore...
// int iLen = 0;
// calcolo la lunghezza di szMsg
iLen = strlen(szMsg) + 1;
// scrittura nel file precedentemente aperto con la CreateFile()
while( szMsg[i] != '\0' )
{
      bResult = WriteFile(hFile, &szMsg[i], 1, & dwWritten, NULL);
      i++;
      if (!bResult)
      {
           printf("La WriteFile ha fallito!!!\n");
           break;
      }
 }
l'errore e' il seguente: cosi' facendo la WriteFile mi va a scrivere solo i
primi 5 caratteri perche' poi quando incontra il valore
0x00 lo considera come terminatore di fine stringa ( giustamente ).
Se provo invece ad utilizzare la strlen per calcolare la lunghezza del
vettore il risultato e' lo stesso:
la strlen restituisce 5, dato che quando arriva a 0x00 lo considera come
terminatore, quindi
// scrittura nel file precedentemente aperto con la CreateFile()
while( i < iLen )
{
      bResult = WriteFile(hFile, &szMsg[i], 1, & dwWritten, NULL);
      i++;
      if (!bResult)
      {
           printf("La WriteFile ha fallito!!!\n");
           break;
      }
 }
anche questo costrutto fallisce miseramente, avete un consiglio da darmi???
P.S. non posso cambiare l'ultimo carattere e mettere, per esempio, un
asterisco
char szMsg[8] = { 0xff, 0xff, 0xf5, 0x05, 0x01, 0x00, 0x00, '*'};
perche' le specifiche sono rigide e, comunque, a me incomprensibili; non
capisco infatti perche' non possa cambarlo, ma tant'e'...
ciao e grazie in anticipo!!!

 alla fine del vettore
sizeof(szMsg) non va bene?
Comunque il terminatore non serve nell'array di byte.
Maurizio.

 while( i < iLen )
Cambia con
  while( i <= iLen ) // nota il <= !!!

Newsgroup: it.comp.lang.c
Titolo: FUNZIONE GETS()

HO PROVATO PIU' VOLTE A FAR FUNZIONARE LA FUNZIONE GETS() MA MI DA
SEMPRE ERRORE? PUO' ESSERE CHE NON VA LA FUNZIONE?


no. Puo` essere che non la sai usare.
E non urlare.
Adieu,
-- 
Lestat de Lioncourt  -- a.k.a --  Ciro Mattia Gonano
 Undergraduate student in Computer Science at University of Bologna
 IHGGer #1049   <=>  ICQ#: 52631406   <=>   URL: 
http://www.CS.UniBO.It/~gonano
 Debian admin at 
Students.CS.UniBO.It
 <=> look at headers for my JabberID & GPG

 SEMPRE ERRORE? PUO' ESSERE CHE NON VA LA FUNZIONE?
Posta un brevissimo stralcio di codice in cui non ti funziona e spiega
meglio gli errori che ti da'.
Altrimenti non ti puo' aiutare nessuno.
Inoltre in altre poste ho letto che si sconsiglia di usare la gets().
Al suo posto e' meglio usare la fgets() per leggere dallo stdin.
Ciao,
Ema

il programmino e' il seguente:
1. #incude<stdio.h>
2. char riga[256];
3. main()
4. {
5.     printf("Inserire una stringa:\n);
6.     gets(riga);
7.     printf("\n la stringa inserita e' :\n");
8.     printf("%s\n",riga);
9. }
se lo compilo con gcc <nomefile> mi da il seguente errore:
/tmp/cce3SXlu.o In function 'main':
/tmp/cce3SXlu.o(.text+0x29):the 'gets' functions is dangerons and
should not be used.
se io trasformo la riga 4. in un commento (/*  gets(riga)   */) il
compilatore non da alcun errore.
spero di risolvere perche' non so cosa possa essere.
e possibile compilare i programmi in c, non come root e non
necessariamente nella directory /usr/bin
grazie ancora

 ha scritto nel messaggio
news:50b632ad.03072...@posting.google.com...



l'hai detto.


 
"La funzione Gets() e' pericolosa e non andrebbe usata" di questo ti avverte
il Gcc, e tu mi dirai ... perche?
qualsiasi@nemesis:~$ man gets
[cut fino a linea 60]
BUGS
       Never  use gets().  Because it is impossible to tell without knowing
       the data in advance  how  many  characters  gets()  will  read,  and
       because gets() will continue to store characters past the end of the
       buffer, it is extremely dangerous to use.  It has been used to break
       computer security.  Use fgets() instead.
-- 
Qualsiasi
"We all know Linux is great...it does infinite loops in 5 seconds." Torvalds


Quindi, in base a tutto cio' che ti e' stato detto, diventa
#include <stdio.h>
char riga[256];
int main(void) {
  printf("Inserire una stringa:\n");
  fgets(riga,256,stdin);
  printf("\n la stringa inserita e' :\n%s\n",riga);
  return 0;
}
che compilato con
gcc -Wall nomefile.c
non da' alcun errore/warning
Ciao,
Ema

 perfettamente funzionante (a.out, se stai compilando con gcc).
Tecnicamente non e' nemmeno un warning. Il codice e' corretto (inezie
a parte) sarebbe un errore da parte del compilatore l'emissione di un
warning in questo caso.
E' semplicemente un consiglio.
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Tecnicamente non e' nemmeno un warning. 
Infatti.  Questi sono generalmente chiamati "hint".
-- 
Open Delphi Manual
http://groups.yahoo.com/group/delphi_open_manual/

grazie delle risposte.
non pensavo che la rete potesse servire anche a questo.
a presto
Newsgroup: it.comp.lang.c
Titolo: AIUTO!!

Allora ragazzi devo realizzare un programma in C ma ho qualche
problemino......Aiutatemi
Il programma deve effettuare le seguenti operazioni:
1) lettura da un file,supposto dato, di un array VET[1000] i cui elementi
sono costituiti da numeri interi di 6 cifre tutti diversi tra di loro;
2)Lettura da tastiera di un valore interi di 6 cifre detto NVAL;
3)individuazione e stampa degli indici dell'elemento di VET,se esiste, Che
coincida con NVAL;
4)individuazione e stampa degli indici dell'elemento di VET le cui
cifre,tranne una,coincidono con quelle di NVAL ed il valore di tali
elementi;
5)individuazione e stampa degli indici dell'elemento di VET le cui
cifre,tranne due,coincidono con quelle di NVAL ed il valore di tali
elementi;
I maggiori problemi sono nella risoluzione dei punti 4 e 5, se introduco
Nval come intero come faccio poi a confrontare cifra per cifra NVAL con gli
elementi di VET che tra l'altro sono pure interi???????
Accetto idee e soluzioni
GRazie Piero


Puoi usare itoa, e comparare ogni carattere dal vettore ottenuto.
Un'altra soluzione:
int test(int n1, int n2)
{
  int i, cnt,r1,r2;
  /* div_t dv1, dv2;*/
  cnt=0;
  for(i=0;i<6;i++)
  {
    r1=n1-n1/10*10;
    r2=n2-n2/10*10;
    if(r1!=r2) cnt++;
    n1/=10;
    n2/=10;
/*
    dv1=div(n1,10);
    dv2=div(n2,10);
    if(dv1.rem!=dv2.rem) cnt++;
    n1=dv1.quot;
    n2=dv2.quot;
*/
  }
  return cnt;
}
Funziona anche il codice commentato, ma non mi ricordo se è standard (La
dichiarazione è in stdlib.h, quindi dovrebbe essere)
Dan
Newsgroup: it.comp.lang.c
Titolo: Chi tocca il mo vettore?

Il seguente pezzo di codice mi da un problema tanto piccolo quanto
fastidioso: ho un vettore di interi (wl) di 12 elementi (#define
MAX_COUNT 12), e alla fine dell'elaborazione lo scandisco (tralasciando
l'elemento 0) per dare in out i risultati. Prima della scansione (vedi
output più in basso) il valore dell'ultimo elemento del vettore
(wl[MAX_COUNT] == wl[12]) sembra avere il valore corretto (nel caso
proposto 2), durante il ciclo di scansione succede quello che vedete
più giù: leggendo i commenti credo si capisca abbastanza bene.
Non me lo spiego, qualcuno può fare luce?
Grazie per l'attenzione, ciao!
GePs
/* perché qui wl[12] a un valore e alla fine (vedi) ne ha un altro,
   visto che all'interno della for non viene modificato??? */
printf("wl[12]: %d;\n", wl[12]);
printf("wl[MAX_COUNT]: %d;\n", wl[MAX_COUNT]);
printf("MAX_COUNT: %d;\n", MAX_COUNT);
printf("Inizio ciclo for\n");
for (i = 1; i <= MAX_COUNT; ++i) {
	printf("%2d:", i);
	for (j = 0; j < wl[i]; ++j)
		putchar('*');
	// perché all'interno di questo ciclo for wl[MAX_COUNT] cambia?
	printf("(%d, wl[MAX_COUNT]: %d)\n", wl[i], wl[MAX_COUNT]);
}
printf("Fine ciclo for\n");
/*****************************************************************
 * wl[MAX_COUNT] è cambiato rispetto all'inizio del ciclo for,   *
 * nonostante non sia stato esplicitamente modificato! Perché??? *
 *****************************************************************/
printf("wl[MAX_COUNT]: %d; ", wl[MAX_COUNT]);
/* OUTPUT
 *
	wl[12]: 2;
	wl[MAX_COUNT]: 2;
	MAX_COUNT: 12;
	Inizio ciclo for
	 1:(0, wl[MAX_COUNT]: 0)
	 2:(0, wl[MAX_COUNT]: 0)
	 3:(0, wl[MAX_COUNT]: 0)
	 4:*(1, wl[MAX_COUNT]: 1)
	 5:(0, wl[MAX_COUNT]: 0)
	 6:(0, wl[MAX_COUNT]: 0)
	 7:(0, wl[MAX_COUNT]: 0)
	 8:(0, wl[MAX_COUNT]: 0)
	 9:(0, wl[MAX_COUNT]: 0)
	10:(0, wl[MAX_COUNT]: 0)
	11:(0, wl[MAX_COUNT]: 0)
	12:(0, wl[MAX_COUNT]: 0) ----> dovrebbe essere 2!!!!!
	Fine ciclo for
	wl[MAX_COUNT]: 0; 
 */

 qualcuno può fare luce? Grazie per l'attenzione, ciao!
se dichiari un array di 12 elmenti tu puoi solo accedere gli elementi 0..11. 
Se fosse possibile accedere anche al 12o elemento di fatto l'array 
conterrebbe 13 e non 12 elementi.
Quindi quando dichiari:
int wl[12];
e' corretto fare wl[11] ma non wl[12].
Insomma nulla di strano nel tuo codice, wl[12] non fa parte dell'array ed il 
suo valore puo' quindi cambiare perche' i bytes di wl[12] posso venir usate 
da altre variabili automatiche sullo stack.
Ti consiglio di studiarti il C su di un libro. Qualsiasi libro decente dice 
the in C gli array partono da 0 ed un array di n elementi ha indice da 0 a 
n-1.
Tommaso

 conterrebbe 13 e non 12 elementi.
Accidenti, devo essermi bevuto il cervello... grazie.
Newsgroup: it.comp.lang.c
Titolo: Problema di compilazione

Ciao!
Devo gestire il mouse e ad esempio utilizzo questa funzione:
int CheckMouse(void) {
    union REGS inregs;
    union REGS outregs;
 
inregs.x.ax
 = 0x00;
    int86(0x33, &inregs, &outregs);
    return(
outregs.x.ax
);
}
Se lo compilo con il vecchio compilatore della borland nessun problema...se
invece lo faccio con GCC (utilizzo Dev-Cpp) dice:
In function `CheckMouse':
storage size of `inregs' isn't known
storage size of `outregs' isn't known
Da cosa può dipendere? cosa potrei fare?
Grazie!!
Mauro

 cosa potrei fare?
Ahitè, mi sa che l'unica è riscrivere *daccapo* la funzione, "CheckMouse",
utilizzando le primitive fornite del nuovo compilatore.
Naturalmente, conviene mantenere *anche* il vecchio codice, in modo da non
avere lo stesso problema se dovessi tornare al vecchio compilatore. Per fare
questo si usano le #if:
int CheckMouse (void)
{
   #if defined(_BORLAND)
      union REGS inregs;
      union REGS outregs;
 
inregs.x.ax
 = 0x00;
      int86(0x33, &inregs, &outregs);
      return(
outregs.x.ax
);
   #elif defined(_GCC)
      ... la nuova tua nuova implementazione...
   #else
      #error "ChechMouse() è implementata solo per Borland e GCC!"
   #endif
}
Naturalmente, prima di #else potrai col tempo aggiungere anche altre
implementazioni per altri compilatori.
--
Cingar
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/
Newsgroup: it.comp.lang.c
Titolo: Conversione da Char a Char[]

Ciao a tutti,
ho la neccessità di convertire in C una variabile di tipo CHAR* in una 
CHAR[]*.
Praticamente vorrei che una stringa ricevuta dalla JNI di java venga 
convertita per essere utilizzata come argomento d'ingresso al 
MAIN...pertanto deve avere lo stesso tipo di ARGV.
N.B.: str è quella che intendo convertire:
const char *str = (*env)->GetStringUTFChars(env, strin2, 0);

 MAIN...pertanto deve avere lo stesso tipo di ARGV.
La funzione è main() non MAIN() e che intendi esattamente per "essere
utilizzata come argomento d'ingresso" ?... gli argomenti del main sono
quelli che arrivano dalla riga di comando. Se invece vuoi creare un array
di stringhe compatibile con argv, allora alloca memoria e assegna come
prima stringa dell'array la tua stringa. Considera che argv è sempre
terminato da un NULL sentinella.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 
Effettivamente non sono stato molto chiaro. Il codice sul quale ho 
problemi è il seguente:
#include <stdio.h>
#include "soi.c"
#include "JavaMain.h"
JNIEXPORT jint JNICALL Java_JavaMain_mainc(JNIEnv *env, jobject obj, 
jint argc1, jstring argv1)
{
	const char *str = (*env)->GetStringUTFChars(env, argv1, 0);
	(*env)->ReleaseStringUTFChars(env, argv1, str);
	procedure(argc1,?????);  // converted str
return 0;
}
vorrei passare a procedure(argc1,????) un secondo argomento che abbia la 
stessa forma del main() perchè procedure() è un main di un altro file 
sorgente in C.

 sorgente in C.
Non ho capito come vengano inserite le argc1 stringhe in str.
farei qualcosa del genere:
   char **argv2;
   int i;
   argv2=malloc(sizeof(char *)*argc1);
   for (i=0;i<argv;i++)
     argv2[i]= .... // allocare e copiare la stringa del parametro i
   procedure(argc1,argv2);

 sorgente in C.
Per convenzione il primo argomento è il nome del programma eseguito, nel
tuo caso vedi tu cosa passare. Inoltre le stringhe passate al main
dovrebbero essere modificabili (nell'esempio non lo sarebbero); in
genere non è un grosso problema, è raro che vengano effettivamente
modificate.
Luca
-- 
Non sempre quello che viene dopo e` progresso.
Alessandro Manzoni
Newsgroup: it.comp.lang.c
Titolo: Scusate la domanda

Tenendo conto che const č un modificatore come extern e static č possibile
scrivere un codice come:
const int a = 0;
int* puntatore = &a;
o č necessario
const int a = 0;
const int* puntatore = &a;
io sarei piů propenso per la seconda ma non ne sono del tutto sicuro in
quanto ho trovato esempi che mostrano entrambi i metodi.
Grazie.
 

 
La prima forma è logicamnte incompatibile con il
modificatore const,anche se viene accettata in
fase di compilazione (almeno dal BCC55) con un
solo warning.
La seconda è corretta in quanto impedisce la
modifica di un dato costante (vedi il programmino
che segue)
Çiao
/* const.c - puntatori a oggetti costanti */
#include <stdio.h>
int main()
{
const int a = 0;
int* pa = &a;
/*          int* pa = &a;  warning:
sospetta conversione di puntatori.
In effetti attraverso il puntatore
si va a modificare un oggetto costante
*/
const int b = 10;
const int* pb = &b;
*pa = 5;
printf("a = %2d   -   *pa = %2d\n", a, *pa);
/*
*pb =20;
questa istruzione da errore: non posso
modificare un oggetto costante
break;rimane inalterato per tutto il
corso del programma.
*/
printf("b = %2d   -   *pb = %2d\n", b, *pb);
/*
 Evita la chiusura immediata della finestra DOS
se il programma viene lancito da Windows
*/
printf("\n     Premi Invio per uscire\n");
getchar();
return 0;
}

Newsgroup: it.comp.lang.c
Titolo: lunghezza di file MP3

Salve a tutti!
Avrei bisogno di un piccolo aiutino... :) sto scrivendo u programma in C, e
avrei bisogno di leggere la lunghezza (in secondi) di file in formato MP3
per poi effettuare delle operazioni. Qualcuno sa dovre trovare la
documentazione e magari qualche funzione già fatta per lo scopo??
Grazie e ciao.
Mauro.
----------------------------------------------------------------------------
----
Powered by MauroNET® Technology.
E-mail: Telecom Italia Net 
maurove...@tin.it
Infinito 
mau...@infinito.it
ICQ: ICQ# 17030136
©1998-2001 by Mauro Verrocchio.

su 
www.wotsit.org
 trovi la documentazione per moltissimi file format...
prova a dare una occhiata, non garantisco nulla!
Dome

Newsgroup: it.comp.lang.c
Titolo: segmentation fault

Ciao a tutti, il seguente frammento di codice viene compilato senza errori 
con i gcc sotto Linux. Purtroppo però in esecuzione mi da un errore di 
segmentazione. Sarei grato di un aiuto, grazie.
(CON Visual C++ Funziona perfettamente)
#include <stdio.h>
int main()
{
        FILE *fp;
        char buf[100];
        int res;
              int char_counter=0;
        fp=fopen("file.txt","r");
        if(fp=NULL){
              printf("\nthe file does not exist..quitting");
              exit(1);}
        do{
        res=fread(buf,1,100,fp);
              char_counter+=res;
              }while(res!=0);
              printf("\nThe file contains %ld characters",char_counter);
return 0;
}


ciao
donCiccio

>         if(fp=NULL){
Per evitare di incappare in errori simili inverti il controllo:
if (NULL == fp)
Cosi' anche se ti sbagli il compilatore ti segnala errore, con un
messaggio del tipo:
"invalid lvalue in assignment"
-- 
Mox
Newsgroup: it.comp.lang.c
Titolo: generazione casuale

qualcuno sa dirmi come fare per generare numeri interi tra o e 1000000?
Ho provato con la rand() ma il massimo intero generato e'  32767.
Anche impostando con #define  RAND_MAX F4240 non cambia niente.
Ho guardato il sorgente rand.c :
        return(((holdrand = holdrand * 214013L + 2531011L) >> 16) & 0x7fff);
ho provato a sostituire 7fff con un numero piu' grande ma il risultato e'
stato
che genera soltanto numeri vicini al massimo o al minimo.
grazie in anticipo a chi puo' aiutarmi
Ino

Anche impostando con #define  RAND_MAX F4240 non cambia niente.
E ti credo. Sarebbe come se scrivendo #define _MAX_PATH 11 il sistema
cominciasse magicamente a gestire i path con 11 caratteri :-)
---
Bye, Fox.

Newsgroup: it.comp.lang.c
Titolo: mail da codice C e funzioni per il networking

Ciao a tutti,
qualcuno ha mai realizzato l'invio di mail dall'interno di codice C ???
Mi servirebbe qualche implementazione di socket, e l'implementazione delle
funzioni che realizzano l'invio di mail utilizzando il protocollo SMTP.
Devo inviare, al verificarsi di certi eventi, delle semplici mail contenenti
esclusivamente qualche riga di testo standard.
Conoscete qualche libreria di funzioni C che implementa le tipiche funzioni
di networking (socket, SMTP, FTP, SNMP,...) ????
Grazie mille e buon lavoro a tutti

 wrote in message
news:98qucs$fuj$1...@news.unina.it...

Newsgroup: it.comp.lang.c
Titolo: Problemi con Lcc

Salve a tutti, sono un programmatore principiante e mi è capitato un piccolo
ma noioso problema con l'ultima versione di Lcc (il compilatore C per
Windows..). In pratica non mi esegue i file che si trovano in directory con
nome lungo. Ad esempio:
C:\lcc\prova.c                        lo compila e lo esegue normalmente,
C:\Documents and Settings\Franco\Documenti\Lcc\prova.c         non va.
La cosa strana e che la versione precedente di Lcc li compilava ed eseguiva
tranquillamente..
Sapete se si può impartire al compilatore qualche comando che gli faccia
"riconoscere" i file con nomi lunghi?
Grazie mille,
Franco.

 va.
Prova ad usare i nomi DOS nei percorsi, quelli che si ottengono 
cliccando col tasto destro su una cartella e scegliendo Proprietà.
Saluti
-- 
Per l'e-mail rimuovere la frase in maiuscolo e gli underscore.

C:\Documents and Settings\Franco\Documenti\Lcc\prova.c         non va.
   Troppo generico. Come non va? Operazione non valida (che tipo?),
errore di run-time (quale?), termina silenziosamente?
   Cosi` a `palla di vetro', sospetto qualche problema nel codice di
startup, ad esempio nella valorizzazione di `argv[0]' (che normalmente
viene calcolato comunque, anche se il tuo `main' non vi fa
riferimento. Prova a eseguirlo cosi`:
C:\Cartella_con_nome_lungo_senza_spazi\prova.exe
C:\Docume~1\Franco\Docume~1\Lcc\prova.exe
   poi prova a compilarlo in una cartella con il nome corto, senza
spazi, e a copiare l'eseguibile in `Documents and Setting', per vedere
se da` lo stesso errore. Probabilmente la soluzione sara` gia` in
qualche forum dedicato a Lcc.
-- 
S.L.

 non va.
Le virgolette, Franco, usa le virgolette.
Se il nome contiene spazi o caratteri particolari come "+" il nome va
racchiuso tra virgolette.
"C:\Documents and Settings\Franco\Documenti\Lcc\prova.c"
Ma poi, sei sicuro che devi per forza usare la directory "Documents and
Settings" ? ^_^;;;
-- 
-=[]=---iAN CooG---=[]=-
Line noise? What fh=.hElL is.LinS nfise?

 and Settings" ? ^_^;;;
Infatti alla fine ho cambiato directory.. comunque la versione precedente
funzionava... e sembra che sui forum dedicati non si trovi nulla...
Grazie a tutti comunque! :-)
Franco

funzionava... e sembra che sui forum dedicati non si trovi nulla...
   Io non avevo capito niente! Credevo non ti funzionassero gli
eseguibili prodotti. :-)
-- 
S.L.