mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c
Titolo: C e file... una guida o un approfondimento per favore

Sto imparando il c attravero guide che ho scaricato...
ma non riesco a trovarne una che tratti in maniera chiara e approfondita
i file... vorrei sapere tutte le funzioni e i modi di trattare i file di
testo e binari,
qualcuno sa darmi indicazioni? dove trovare una guida adatta oppure un sito
che tratti l'argomento...
Grazie


wrote:

cerca il trickyc su internet e leggiti solo la parte dei file...ma
solo quella :)
-- 
Lawrence "Rhymes" Oluyede (
rhy...@myself.com
)
"Per cambiare, per diventare un'altra
cosa dobbiamo prima sapere cosa siamo"
(Bruce Lee)

 solo quella :)
perchè solo quello???
io ce l'ho trickyC... non vorrei imparare cose sbagliate!!
ciao grazie

ciao grazie
Non impari cose sbagliate ma obsolete :) IL TC non č standard e
piuttosto vecchiotto


Newsgroup: it.comp.lang.c
Titolo: Operazioni sui bit

Ciao a tutti,
qualcuno mi saprebbe spiegare cosa fanno le seguenti istruzioni?
...
fseek(file_in_input, 0L, SEEK_CUR);
textsize = ftell(file_in_input);
fputc((int)((textsize & 0xff)), file_in_output);
fputc((int)((textsize & 0xff00) >> 8), file_in_output);
fputc((int)((textsize & 0xff0000L) >> 16), file_in_output);
fputc((int)((textsize & 0xff000000L) >> 24), file_in_output);
if (ferror(file_in_output)) { ... visualizza messaggio di errore ... }
...
Se ho capito, fseek piazza l'indicatore di posizione di file_in_input un
certo numero di byte oltre la posizione corrente (in questo caso 0 byte
oltre). Poi ftell rende un long int che rappresenta l'attuale indicatore di
posizione.
Il seguito mi è piuttosto oscuro.
Credo che la prima fputc scriva il risultato dell'and sul file_in_output
(forzandolo a essere un intero con (int) - che bisogno c'era?), risultato
che - credo - dovrebbe essere proprio textsize.
Ad ogni modo, textsize ha dimensione 4 byte. E' lecito fare un and con 0xff
(1 byte, giusto?) ?
Sarebbe stata la stessa cosa fare textsize & 11111111 ? I binari li devo per
forza esprimere in esadecimale?
Le putc successive, con scorrimento a destra, servono per accedere in
qualche modo al 2°, 3° e 4° byte del risultato dell'and ?
Grazie mille,
Ale

 qualche modo al 2°, 3° e 4° byte del risultato dell'and ?
Si', le quattro istruzioni fputc() accedono ai byte 1,2,3 e 4 di textsize.
Tutto questo per invertire il sesso dei byte.
In questo modo il file contiene i 4 bytes nel'ordine dal meno significativo
(1)
al piu' significativo (4): se avessi salvato direttamente textsize in
file_in_output
i quattro bytes sarebbero stati scritti nell'ordine inverso.
Newsgroup: it.comp.lang.c
Titolo: Aiuto Array

Scusate ho provato ad compilare questo programma con dev c++ x la somma di
due vettori usando i puntatori....ma mi stampa questo output inserendo 10 ed
poi
valori consecutivi da 1 a 20!!!
-1.#QNANO
49.000000
781178293342284940000000000000000.00000
779837851867746730000000000000000.00000
0.000000
779837851867746730000000000000000.00000
155227950717677900000000000000000.00000
0.0000007775150430750336100000000.00000
-1.#QNANO
che signifia!!???
ecco il programa;
#include <stdio.h>
main()
{
    float a[10], b[10], c[10];
    int i, n;
    scanf("%d", &n);
    for(i = 0; i <n; i++)
    scanf("%f %f", a+1, b+1);
    for(i = 0; i <n; i++)
    {
        *(c+i) =*(a+i)+*(b+i);
        printf("%f\n", *(c+i));
    }
}
grazie in anticipo per l'aiuto.

         printf("%f\n", *(c+i));
perche' ti dai delle mazzate sui piedi da sola ?
non dico che sia sbagliato, ma
visto che sono array perche' non usi la notazione
     c[i]= a[i]+b[i];
etc.etc.
ciao,
g.
-- 
COMFORT = A state of mind produced by contemplation of a neighbor's 
uneasiness. (da Ambrose Bierce "Il Dizionario del Diavolo")

     scanf("%f %f", a+1, b+1);
Hai dichiarato dei vettori di tipo float. Ora stai lavorando sulla 
variabile a (che descrive l'intero vettore) aggiungendo l'uno.
Non è che per caso avresti voluto scrivere a[i] e b[i] come secondo e 
terzo argomento della scanf?
Gian Leonardo

 grazie in anticipo per l'aiuto.
prego

 tipo a[10] = { 0 }...
Perche' dovrebbe ?
In questo caso non c'e' nessun motivo
per inizializzare i valori, visto che vengono letti
prima di essere usati.
ciao,
g.
-- 
AIUTARE= Accrescere il numero degli ingrati
(Ambrose Bierce, Il Dizionario del Diavolo)

         *(c+i) =*(a+i)+*(b+i);
tanto che c'eri potevi scrivere
c[i] = a[i] + b[i];
o a scelta, se lo scopo era di vincere il concorso di ioccc
*( &0 <:c :> + i) = i<:a] + 0[ b +i :> ;


 prima di essere usati.
L'inizializzazione delle variabili e' un'assicurazione in caso
di debug (come scrivere nomi sensati per le variabili e non a, b,
...: sto ancora malediciendo gli autori di dbm.)
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 prima di essere usati.
scritti forse volevi dire...
v. prima...
Comunque ritengo che i non troppo esperti debbano inizializzare sempre tutte
le variabili e mettere a NULL tutti i puntatori... forse e` una buona prassi
per tutti...

 per tutti...
Su questo non ci piove. Solo che non volevo che il
principiante in questione pensasse che l'errore fosse
dovuto (anche) alla mancata inizializzazione.


 g.
ciao

 *( &0 <:c :> + i) = i<:a] + 0[ b +i :> ;
Hai fatto lo sborone? :-D
Me la espliciti paso passo, grazie?
Gian Leonardo


<: e :> sono digraph vengono sotituiti da [ e ]
quindi:
*( &0[c] + i) = i[a] + 0[b+i] ;
x[y] = y[x] = 0[x+y] = *(x+y)
quindi
   c[i] = a[i] + b[i]
-- 
sbi


&a[i] e &b[i] ?

Maxime wrote:
  > &a[i] e &b[i] ?
Esattamente ;-)
Newsgroup: it.comp.lang.c
Titolo: struct

Salve.
E' parecchio che non posto nulla qui.
Comunque, non riesco a capire questo errore in fase di compilazione  
lista1.c: In function 	insert':
lista1.c:23: request for member `listp' in something not a structure or union
lista1.c:24: request for member `val' in something not a structure or union
ottenuto con un programma che contiene, tra l'altro,
 questi frammenti di codice:
struct lista{int val;struct  lista *listp; };
main()
{
struct lista *listp;
...
insert(&listp,value);
...
}
void insert( struct lista **listpp, int value)
{
 struct lista *tmpaddr;
tmpaddr=*listpp;
*listpp=(struct lista *)malloc(sizeof(struct lista));
*listpp->listp=tmpaddr;
*listpp->val=value;
}
A questo punto , [dopo che ho provato praticamente tutt le soluzioni,almeno
credo...], mi sembra giusto;
listpp e' un puntatore a un putatore a un dato lista
*listpp e' quindi un puntatore a un tipo lista
*listpp->val e' il campo della struct appena creata con malloc
P.S E' ovvio che non e' cosi', xche' altrimenti funzionava, ma ormai mi sono
    autoconvinto...
Ciao a tutti 
Vi][oZ
-- 
Per rispondere togliere NONSCASSA da reply-to.

 wrote:
Problema risolto.
Scusate se ho postato prima di aver ricontrollato per bene.
Per la cronaca, l'errore era dovuto al fatto di aver scritto ]
*listpp->listp=tmpaddr;
*listpp->val=value;
invece di
(*listpp)->listp=tmpaddr;
(*listpp)->val=value;
E' lo so...
le precedenze mi fregano sempre :-((

Newsgroup: it.comp.lang.c
Titolo: cosa devo fare x programmare giochi stile pac-man

Ho il desiderio di riuscire a programmare giochi arcade molto
"semplici" stile pac-man duke nuke 1 o 2 ecc.
Sapete indicarmi:
1 - che linguaggio devo imparare
2 - dove posso trovare il compilatore ed eventuali programmi per
effettuare la grafica (una specie di thedraw pero' per la grafica)
3 - che libro devo comprare per imparare il suddetto linguaggio
Speranzoso in un AIUTO ringrazio, ciao.
					Gianluca

Ti conviene imparare il 'C', che a mio avviso è il miglior linguaggio di
programmazione. Per le tue esigenze, il compilatore Turbo C della
Borland è sufficiente. Per la grafica, utilizza l'XLIB che puoi trovare
facilmente su internet. Un buon testo che ti posso consigliare per
iniziare e' quello della collana Shaum (non ricordo pero' il titolo e
l'autore); se ti serve qualche testo piu' avanzato, contattami.
Stefano

...


Se vuoi te li spedisco.
Mi dici un URL? Grazie!

                                         Gianluca
ciao,
 per poter programmare i giochi e` necessario conoscere un linguaggio ad
alto livello (pascal o C o C++) e conoscere la programmazione a basso
livello (assembly) per poter implementare delle routine veloci per varie
operazioni grafiche (tipo scrolling, zoom, putimage, line ecc.).
E` chiaro che per implementare tali routine e` necessario conoscere il
calcolo matriciale e vettoriale (algebra lineare) in quanto sono
necessarie delle traformazioni per routare, traslare ecc. oggetti o
immagini.
In rete e` comunque possibile trovare delle librerie grafiche gia`
pronte per poter essere usate.
------------------------------------------
life is like a complex number,
it has a real part and an immaginary part.
Alberto Speranzon < 
albertos2intercity.it
 >
Newsgroup: it.comp.lang.c
Titolo: Passggio di un array a 2 dimensioni ad una funzione

Ma se voglio fare una funzione a cui passare una matrice quadrata di
dimensioni ignote perchč non va bene cosě?
unsigned int pippo[5][5]; //Matrice
funzione(pippo, 5); //chiamata di funzione
void funzione(unsigned int array[][], int n)  //dichiarazione funzione, n
sta per la dimesione dell'array (in questo caso 5)
cosě la funzione non dovrebbe prendere un array a 2 dimensioni in input?
Perchč ad una dimensione funziona (come nell'esempio dopo) e a 2 no? Cosa si
aspetta la funzione? Nel secondo caso dovrebbe essere un puntatore al primo
elemento dell'array cioč un unsigned int mentre nel primo caso si aspetta un
puntatore ad un array di unsigned int?
unsigned int pippo[5]; //Matrice
funzione(pippo, 5); //chiamata di funzione
void funzione(unsigned int array[], int n)  //dichiarazione funzione

 void funzione(unsigned int array[][], int n) 
<STD_DISCLAIMER.H>
	non so se quello che ho scritto in questo post è standard.
</STD_DISCLAIMER.H>
Non puoi passare una matrica di dimensioni ignote in questo modo, usa
piuttosto i puntatori. Il motivo per cui non è possibile è che se il
compilatore non conosce la dimensione della matrice, non può sapere in
quale indirizzo di memoria si trova l'ipotetica variabile "matrice[i][j]".
Per spiegare con un esempio:
supponi di dichiarare "char a[3][3];", verrano riservati 9 bytes per
la tua variabile a cui potrai accedere in questo modo:
a[0][0] -> byte 0
a[0][1] -> byte 1
a[0][2] -> byte 2
a[1][0] -> byte 3
a[1][1] -> byte 4
a[1][2] -> byte 5
a[2][0] -> byte 6
a[2][1] -> byte 7
a[2][2] -> byte 8
Come vedi il byte che serve si ottiene con la formula:
("primo indice" * "seconda dimensione") + "secondo indice"
Indipercui, se il compilatore non conosce tutte le dimensioni successive
alla prima, non sarà in grado di utilizzare la variabile.
Be' mi sono dilungato anche troppo. In sostanza tramite puntatori e un
giusto calcolo di offset puoi passare tranquillamente array
multidimensionali di cui non conosci la dimensione a priori.
Ad esempio così:
void funzione( int * matrice, int dim )
{
	int i,j;
 
	for( i = 0; i < dim; i++ )
		for( j = 0; j < dim; j++ )
			printf("%d\n", matrice[ (i*dim) + j) ];
}
int main ()
{
	int a[10][10];
	...
	funzione(a,10);
	return 0;
}
Ciao

 così la funzione non dovrebbe prendere un array a 2 dimensioni in input?
perche' il prototipo dovrebbe essere:
void funzione(unsigned int array[][5], int n)
altrimenti puoi allocarti tu una matrice quadrata usando i puntatori, in
questo modo eviti di dover passare il valore 5 e puoi semplicemente passare
n.
Tommy
Newsgroup: it.comp.lang.c
Titolo: Mi scuso per il "Koji je, po vama, najbolji site sa izvornim kodom u C/C++?"

Mi scuso, ho sbagliato la lingua. Volevo chedere:
Secondo voi, quale e' il sito migliore con i sorgenti in C/C++?

Secondo voi, quale e' il sito migliore con i sorgenti in C/C++?
ma che lingua era??
www.cplusplus.com
www.programmersheaven.com
--
Lawrence "Rhymes" Oluyede
rhy...@myself.com

 ma che lingua era??
Pascal! :-)
C:\>iao Angelo
P.S. Serbo o Croato.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 Secondo voi, quale e' il sito migliore con i sorgenti in C/C++?
Direi  
www.gnu.org
 e  
www.sourceforge.net
  che  ospitano molti  progetti
opensource. Poi c'e` anche 
freshmeat.net
 che e` un motore di ricerca per
software open.
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
"L'abilita` politica e` l'abilita` di prevedere quello che
 accadra` domani, la prossima settimana, il prossimo mese e
 l'anno prossimo. E di essere cosi` abili, piu` tardi,
 da spiegare  perche' non e` accaduto."

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

Se io definisco 2 struture in modo che una sia una sorta di derivazione
dall'altra in questo modo:
typedef struct{
      int a;
      char c;
}BASE;
typedef struct{
    BASE b;
    int n;
}D;
Poi posso fare una cosa di questo tipo?
BASE *a;
D *d;
a = malloc(sizeof(*a));
a->a = 4;
a->c = 'd';
d = (D*)a;
e ritrovarmi con il campo base ugaule all'istanza della struttura a?

e ritrovarmi con il campo base ugaule all'istanza della struttura a?
Credo si possa dire di si' con tutti i compilatori.
Dovrebbe essere assicurato dallo standard che l'ordine in cui vengono
memorizzati i membri di una struttura e' identico a quello in cui
vengono dichiarati.  Basta provare (al limite si scopre, in caso
contrario, che e' una questione dipendente dall'implementazione). 

e ritrovarmi con il campo base ugaule all'istanza della struttura a?
Sě, ma stai attento a non utilizzare il campo d->n, perché la memoria
per lui non č stata allocata.
Se vuoi essere certo che non nascano problemi, nella chiamata a malloc()
passa la sizeof della struttura D.
-- 
Saluti,
    Mardy


Grazie 1000 a tutti!!!
Enrico S.

>
BASE diventa sinonimo di una struttura di nome eee.
Lanugo

iGor wrote:

Si, ma non hai allocato spazio per il mebro "d->n" ( leggi: sizeof(BASE) < 
sizeof(D); a meno di alloc con strane ottimizzazioni )

> }BASE;
Nulla in particolare.
eee e' il "tag" della struttura.
Viene in aiuto quando si vuol costruire una struttura
auto-referenziante, tipo :
typedef struct _nodo {
               int dato ;
               struct _nodo *left ;
               struct _nodo *right ;
} nodo ;
Non c'e' bisogno che il nome del tag sia distinto da quello della
struttura, cioe' si puo' anche scrivere :
typedef struct nodo {
               int dato ;
               struct nodo *left ;
               struct nodo *right ;
} nodo ;
Newsgroup: it.comp.lang.c
Titolo: Uso della libreria graphics.h

[cut]
ma il compilatore rispondeva con un msg di errore per le librerie BGI non
supportate sotto win. Cosě le ho incluse e ho compilato di nuovo senza
errori.
Il prog. perň mi scrive a schermo che devo usare initgraph ho fatto la
solita ricerca sulla libreria e l'ho trovata ma non riesco a capire che cosa
si aspetta come terzo input...
qualcuno mi potrebbe aiutare magari anche postandomi una piccola guida a
questa libreria ?
MADlineDIE
grazie in anticipo
...forse initgraph e una funzione o un altra libreria? quindi prova  a fare
un ricerca su google.
fammi sapere .
Ciao Roberto

Ciao Roberto
initgraph é la funzione principale della Borland Graphics Interface
...
setta la scheda video in risoluzione grafica e permette di usare
le altre funzioni ... sotto windows (e i programmi compilati per win
in modo nativo) tale libreria non funziona in quanto non é
disponibili..
é presente solo per le versioni dos degli eseguibili..
i parametri richiesti sono
initgraph(int far *graphdriver, int far *graphmode, char far
*pathdriver);
ciao
cod

 questa libreria ?
Se tu cerchi nel help del Borland ci sono dei esempi per le varie funzioni e
dovresti quindi averli nel tuo sistema (BCDOS.HLP??)...
Qui c'e' quella per initgraph (i driver BGI devono essere nella stessa
cartella del programma, ma puoi anche usare un path fisso tipo "C:\BGI"):
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
int main(void)
{
   /* request autodetection */
   int gdriver = DETECT, gmode, errorcode;
   /* initialize graphics mode */
   initgraph(&gdriver, &gmode, "");
   /* read result of initialization */
   errorcode = graphresult();
   if (errorcode != grOk)    /* an error occurred */
   {
      printf("Graphics error: %s\n", grapherrormsg(errorcode));
      printf("Press any key to halt:");
      getch();
      exit(1);               /* return with error code */
   }
   /* draw a line */
   line(0, 0, getmaxx(), getmaxy());
   /* clean up */
   getch();
   closegraph();
   return 0;
}

Newsgroup: it.comp.lang.c
Titolo: <<<<EURO Convertitore GRATIS >>>>

 wrote in message BC%Y7.1280$q%1.4...@news2.tin.it...


 su windows xp non funziona dice che manca una dll :P
puoi provare questo: e' gratis, e' inutilmente complesso, funziona anche su
windows xp e non richiede dll!
#include <stdio.h>
float lir_to_eur (float a) {return a/1936.27;}
float eur_to_lir (float a) {return a*1936.27;}
void make_conversion (float a, float(*func)(float)){
 printf("\nCorrispondente: %f\n", func(a));
}
int main(void)
{
 float (*pippo)(float);
 float sum;
    int i;
 do{
  printf("1)lire->euro\n");
  printf("2)euro->lire\n");
  printf("3)esci\n");
  scanf("%d", &i);
        while (getchar()!='\n');
 }
 while (i!=1 && i!=2 && i!=3);
 switch (i)
 {
 case 1: pippo=lir_to_eur;
 break;
 case 2: pippo=eur_to_lir;
 break;
 case 3: return 0;
 break;
 }
 printf("Che somma di denaro vuoi convertire?\n");
 scanf("%f", &sum);
    while (getchar()!='\n');
 make_conversion (sum, pippo);
    system("PAUSE");
 return 0;
}
--
Zeppe
Newsgroup: it.comp.lang.c
Titolo: leggere righe di testo con una certa forma

salve
come posso fare a leggere un file "per righe" e scartare quelle che non
hanno la forma che voglio?
Ho provato con fscanf(fp, "%s %s %d", &b, &e, &t);
ma a volte mi ritrovo che mi legge metà dati da una riga e metà dalla
successiva, "scalando" poi tutte le successive letture
Come posso risolvere?

Andrea B. ha scritto:

Quando la fscanf() ti ritorna un valore compreso fra 0 e 2 (cioè quando
non è a fine file ma ha letto meno di tre campi), usi fgect() per
asportare quel che resta della riga da scartare:
   int res;
   do
   {
      res = fscanf(fp, "%s %s %d", &b, &e, &t);
      if (res == 3)
      {
         ...usa i dati...
      }
      else if (res != EOF)
      {
         do
            res = fgetc(fp);
         while (res != '\n' && res != EOF);
      }
   }
   while (res != EOF);
L'unico vantaggio rispetto al sistema suggerito da Giovanni è che in
questo non ti serve allocare un buffer per leggere la riga e, di
conseguenza, funziona con righe di qualsiasi lunghezza.
--
Cingar
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 conseguenza, funziona con righe di qualsiasi lunghezza.
Non l'ho ancora provato ma credo che avrň sicuramente qualche problema per
*riconoscere* gli *a capo*
come posso rendere generico il codice che mi hai postato?
(se non sono stato chiaro ho paura del problema che incontrerň quando i fine
riga sono \n o \r\n)
Grazie mille

 fine riga sono n o rn)
All'interno del sorgente C, gli a capo di un file di testo sono visti
sempre come il singolo carattere '\n'.
Cosa poi rappresenti fisicamente questo '\n' dipende dal sistema
operativo: es., i sistemi DOS-like usano solitamente la sequenza di
caratteri 0x0D 0x0A ("carriage return" e "line feed"), i sistemi Unix-like
omettono uno dei due caratteri (non ricordo mai quale) e altri sistemi
possono usare convenzioni ancora diverse.
Ma un programma che legge o scrive un file di testo in modo corretto (cioè
lo apre senza mettere la lettera 'b' nel secondo argomento della
"fopen()") non ha bisogno di conoscere i dettagli di queste convenzioni
perché se ne occupano automaticamente le funzioni di libreria.


Newsgroup: it.comp.lang.c
Titolo: Re: neofita

 word però non me lo compila mi dice "file non trovato"
Be', ma possibile che non dica QUALE file non ha trovato?
Se davvero non lo dice, è un po' difficile aiutarti per chi non ha la sfera
di cristallo.
--
Cingar
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

Ho provato per la prima volta ad usare DEV C++ copiando il classico hello
word però non me lo compila mi dice "file non trovato" ;devo confiugurare il
programma la prima volta che si usa? Perchè ho provato a compilaredei
modelli che c'erano nel programma ma non compila nemmeno quelli.
Newsgroup: it.comp.lang.c
Titolo: Ansi c

Salve a tutto il forum.
Volevo sapere come posso iniziare a programmare in c secondo lo standard
ANSI.
Si trova qualke documento in rete dove posso trovare le specifiche di tale
standard? Premetto che un po'il c lo conosco ma devo sviluppare un progetto
tutto in ansi c e secondo lo standard piu' recente.
Spero in una vs risposta grazie e saluti a tutti

tutto in ansi c e secondo lo standard piu' recente.
Lo standard più recente è il C99 e non so se ci sono libri che lo
illustrano in modo chiaro e completo... Non ti resta che acquistare lo
standard dall'ANSI
Altirmenti puoi acquistare il libro di Kernighan e Ritchie che è
datato appena prima del rilascio del C89 e puoi attenerti a quello
-- 
Rhymes
rhy...@NOSPAMmyself.com

 standard dall'ANSI
Grazie per la info, ciao  =)

Newsgroup: it.comp.lang.c
Titolo: vettore a funzione

Salve a tutti,
sono agli inizi col C...
ho implementato un programma che controlla se un vettore con elementi
immessi dall'utente e' vuoto. in realta' per vettore vuoto intendo
vettore a elementi nulli. il controllo e' effettuato da una funzione
contenuta in un altro file diverso dal main.
il problema, manco a dirlo, e' che non funziona.
ecco i codici:
/* main file */
#include <stdio.h>
#include "checkarray.h"
#define MAXSIZE 100
int main()
{
      int checkarray(int[], int);
      int k, size, response_array;
      int array[MAXSIZE];
      printf("\n\tCheck for void array.\n\n");
      do {
      printf("Insert array size: ");
      scanf("%d", &size);
      } while (size>MAXSIZE || size<0);
      for (k=0; k<size; k++)  {
          printf("Insert data items: ");
          scanf("%d", &array[k]);
      }
      response_array=checkarray(array, size);
      if (response_array==1)
         printf("\n\nThe array is not empty!\n\n");
      else
          printf("\n\nThe array is empty.\n\n");
            system("PAUSE");
      return 0;
}
/* file che esgue il controllo: checkarray.h */
#include<stdio.h>
int checkarray(int array[], int size)
{
 int k;
 int response_array=0;
 for(k=0; k<SIZE; k++) {
    if (array[k]!=0) response_array=1;
       return response_array;
 }
}
dopo l'immissione degli elementi il prog crasha.
tuttavia, se includo la funzione controllo nel main file, funziona
perfettamente. ovvero se immetto:
int checkarray(int array[], int size)
{
 int k;
 int response_array=0;
 for(k=0; k<size; k++) {
    if (array[k]!=0) response_array=1;
 }
    return response_array;
}
alla fine del main file (togliendo la chiamata esterna dal main)
funziona correttamente.
avete qualche suggerimento?
un grazie a tutti,
mirko
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 }
e lo compili.
sotto linux (ma, la 'system("pause")' mi fa pensare che usi windows...):
gcc main.c checkarray.c
non so dirti se funziona, perche' sono appena tornato e non ho davvero la
forza di provarlo... pero' dovrebbe gia' essere un inizio.
se schianta, vedi debuggando, dove lo fa.
ciao
-- 
Er Baitch
"Live Your Life!!!" (Ring ain't a jail)
http://baitch.altervista.org/
Newsgroup: it.comp.lang.c
Titolo: comportamento bizzarro del compilatore?

Ciao,
scrivendo un piccolo programmino per visualizzare il range dei valori
dei vari tipi di dati, mi sono accorto di un comportamento 'bizzarro'
del compilatore Turbo C++ della Borland:
short int i=0;
main()
{
while (++i>=0);
printf ("%d",i);
}
Ora, questo pezzo di codice, compilato con il GCC sotto Linux su un
Pentium III produce a video:
-32768
Pero' compilando con il Turbo C++ 3.0 della Borland sotto Windows98
sulla stessa macchina, ottengo come risultato:
-32767
Incuriosito dal risultato ho fatto una prova:
spostando la printf all'interno del ciclo di while, noto con sorpresa
che l'ultima printf stampa -32768!!!! Cioe' come a dire che la
condizione:
-32768 >= 0
Risulta vera!! Mentre -32767 >=0 risulta falsa. Il che e' impossibile.
La cosa ancora piu' strana e' che lo stesso pezzo di codice cosi'
modificato:
while (++i>=1);
Funziona!!
Come a dire -32768 e' si minore di 1 ma non di zero...
Ovviamente cambiando il codice usando altri schemi funziona (ad
esempio con una condizione di while: while (i>=0) e l'incremento
all'interno del ciclo o postponendo l'incremento e cambiando
inizializzazione della variabile).
Qualcuno mi sa spiegare qual'e' l'arcano? Grazie.
Maurizio

 Qualcuno mi sa spiegare qual'e' l'arcano? Grazie.
Indipendentemente dal risultato che ottieni, stai generando un overflow 
di un intero con segno: cio` che ottieni e` `implementation defined', 
compilatori diversi potrebbero produrre valori diversi.
E` consigliabile evitare di produrre comportamenti di questo tipo, 
poiche` rendono il codice non portabile.
Di conseguenza, il motivo dei risultati differenti dovresti chiederlo a 
chi il compilatore l'ha programmato (e` possibile che trovi informazioni 
anche sul manuale).
-- 
Enrico `Trippo' Porreca
Newsgroup: it.comp.lang.c
Titolo: inizializzazione di un vettore

Salve a tutti!
Dovrei inizializzare un vettore allocato dinamicamente portandolo tutto a 0.
C'è un modo migliore del solito ciclo for? Del tipo vettore[]={0}...come
quando lo definisci?
Grazie

allocalo con la calloc!
te lo azzera "lei"  :)

> allocalo con la calloc!
Non posso...si tratta di memoria condivisa tra processi...per allocarlo uso
la shmat.


Mah, io userei la memset, che dovrebbe essere in string.h, se ricordo 
bene. Non mi pare ci sia modo per inizializzare a zero in partenza, 
anche se mi potrei sbagliare...
-- 
/**
  * Mattia Belletti - Undergraduate student @ 
cs.unibo.it
  * ICQ: 33292311   - email: 
mbel...@cs.unibo.it
  * IRC: BluShine   - site(s): 
http://cs.unibo.it/~mbellett
  * Linux registered user 299762 @ Linux registered machine 213003
  */

 te lo azzera "lei"  :)
Non ne sono sicuro ma nel caso di variabili float "fidarsi" del fatto
che la calloc le azzeri potrebbe limitare la portabilità del
programma. Mi spiego meglio: la calloc, se non sbaglio, azzera tutti i
bytes dell'area di memoria allocata. Se la rappresentazione è in
binario puro, ovviamente, non ci sono problemi: se la rappresentazione
però è del tipo esponente + mantissa (come avviene nei float) bisogna
vedere come vengono organizzati i vari bit. Nel caso della
rappresentazione standard IEEE P754 alle variabili in singola
precisione sono associati 32 bit che, se tutti a 0, sono
effettivamente associati al valore 0. Potrebbe non essere sempre
così... ad esempio in sistemi dedicati quali i microcontrollori (dove
però, un programma scritto in C standard, DEVE comportarsi come su
qualsiasi altra architettura).
S. B.

 effettivamente associati al valore 0.
Vero, anche se non ci si puo` fare affidamento in quanto lo standard C 
non richiede una rappresentazione floating point di tipo IEEE 754 (anche 
se questa e` effettivamente la piu` diffusa).
-- 
Enrico `Trippo' Porreca

Esiste una funzione che si chiama "bzero()" a cui passi il puntatore al
vettore e la dimensione (magari usando la sizeof() ) e lo riempie di zeri.
"fabrizio" <fabs...@liberoNOSPAM.it> ha scritto nel messaggio
news:DCFxb.2114$yq1...@tornado.fastwebnet.it...


 vettore e la dimensione (magari usando la sizeof() ) e lo riempie di zeri.
dopo che qualcuno ha già consigliato di usare memset ed altri hanno già
precisato che non è del tutto igienico e portabile farlo con puntatori e
float, arrivare alla geniale soluzione di usare bzero, che è esattamente
equivalente ad usare memset con c=0, se non fosse per il fatto che bzero
non è standard indica perlomeno manifesta incapacità nell'assimilare
nuovi concetti o pessima educazione nel non ascoltare quelli che gli altri
dicono.
sbirish un pò acido un pò basico
-- 
dietro le transenne!

 sbirish un pň acido un pň basico
ghgh
Mi serviva: in effetti stasera mi ero fatto un piatto di pasta un po' 
carente di sale...
- Mat/Tia Chimico


 ha scritto nel messaggio
news:pan.2003.11.29....@unboffable.net...


 vettore e la dimensione (magari usando la sizeof() ) e lo riempie di zeri.
non e' standard, ovvero non e' C!
Tommy
Newsgroup: it.comp.lang.c
Titolo: Come iniziare??

Salve a tutti.....sono nuovo del mondo della programmazione, e siccome mi
serve per la scuola, devo imparare come si fa....
mi potete consigliare una buona guida,possibilmente reperibile on-line su
cui iniziare a sbattere la testa??!!
Spero possiate aiutarmi!!
DISTINTI SALUTI                                                NICOLA

> Spero possiate aiutarmi!!
Certo, se guardi qualche post sopra troverai dei post
come quello che hai appena postato, e ci sono molte informazioni
ma poi se con google fai una ricerca ce ne sono tantissimi :)
Solo per evitare di perdere del tempo a scrivere cose già scritte
e riscritte ;)
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  |
+-----------------------------------------------------------+

Nicola wrote:

Ti bastera' leggere il tread "vorrei imparare" 09/02/2004 in risposta 
alla domanda di emilio su questo stesso NG.
Marcello

Spostati su it.comp.programmare, per cortesia.
Newsgroup: it.comp.lang.c
Titolo: Interfacce grafiche

Salve a tutti, vorrei sapere un paio di cosette se possibile!
Vorrei sapere quali librerie freeware esistono per creare interfacce 
grafiche.
Ho provato GTK ma a parte il fatto che non riesco ad usarla sotto windows 
(causa mia inesperienza), so che è GNU quindi nel caso la utilizzassi in un 
programma non potrei commercializzarlo!
Se mi potete dare un mano!
Grazie a tutti.
claudio 

 programma non potrei commercializzarlo!
falso. leggi la licenza LGPL, la trovi tradotta anche in italiano.

 ha scritto nel messaggio 
news:d32su9$1fd$1...@ftp.dei.unipd.it...


 Forse non dovevo fare cosi?
non sviluppo gtk sotto windows, mi dispiace. Prova a chiedere in una 
delle mailing list che dovresti trovare sul succitato sito.

> compilare un semplicissimo programma mi dà miriadi di errori di 


Newsgroup: it.comp.lang.c
Titolo: mmap allocazione di un albero

Salve a tutti
devo gestire un grande albero di nodi molto grande
e qui  la soluzione di usare mmap
domanda:è giustificato usare mmap?che altre soluzioni?
l'albero gia l'ho costruito con malloc
struttura nodo { char * nome,  n-figli}
devo convertire le malloc in mmap...
quindi per ogni nodo faccio una malloc della struttura , e poi malloc
per il nome.
ma io devo fare una serie di allocazioni di nodi e di stringhe e non
so il numero in partenza.
come faccio ad usare i puntatori ai nodi con la mmap?
con la prima chiamata mi ritorna un puntatore
e per usare altre allocazioni devo usare l'offset della mmap?come?
aiuto sto al buio e   non trovo una adeguata documentazione.
grazie


ciao, cosa te ne fai della mmap? perche' non ti piace usare la malloc?
ciao
davide

ma l'albero è molto molto grande..
quindi è ingiustificato usare la mmap per grandi allocazioni?
On May 17, 11:37 am, "
davide.ben...@gmail.com
"


 quindi è ingiustificato usare la mmap per grandi allocazioni?
ciao,
la mmap la usi per mappare ad esempio un file in memoria. In questo
caso non ne hai bisogno.
ciao
davide
Newsgroup: it.comp.lang.c
Titolo: Dov'e' l'errore?

Salve.
Potete aiutarmi a capire dove sia l'errore in questo breve frammento di
codice?
int i;
char riga[] = {a,b,c,d,e,f,g,h,i,l,m,n,o};
char anno[3];
for(i = 0; i < 2; i++)
    anno[i] = riga[i];
L'errore e' "segmentation fault".
Utilizzo il gcc gnu sotto linux.
Grazie.
--
  Mauro Sanna
(
mrs...@tin.it
)

 char riga[] = {a,b,c,d,e,f,g,h,i,l,m,n,o};
char riga[] = {'a', 'b', ... };
-- 
Maurizio Loreti                      
http://wwwcdf.pd.infn.it/~loreti/mlo.html
Un. of Padova, Dept. of Physics - Padova, Italy          
lor...@padova.infn.it

Mauro Sanna (
mrs...@tin.it
) wrote:
: Salve.
: Potete aiutarmi a capire dove sia l'errore in questo breve frammento di
: codice?
: int i;
: char riga[] = {a,b,c,d,e,f,g,h,i,l,m,n,o};
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^
: char anno[3];
: for(i = 0; i < 2; i++)
:     anno[i] = riga[i];
: L'errore e' "segmentation fault".
: Utilizzo il gcc gnu sotto linux.
Ma che versione usi ?
A me quel codice non compila neanche...si lamenta di a,b,c,d... eccetera.
Io uso il pgcc 1.0.3, sotto linux.
Comunque basta sostituire la dichiarazione di riga[] con
char riga[] = {'a','b','c','d','e','f','g','h','i','l','m','n','o'};
Ciao ciao
Andrea
-- 
"...Unix, MS-DOS, and Windows NT (also known as the Good, the Bad, and 
 the Ugly)."
(by Matt Welsh)

char riga[] = {'a','b','c','d','e','f','g','h','i','l','m','n','o'};
Giusto, o piú comodamente
    char riga[] = "abcdefghilmno";
(si spreca 1 byte, uno 0 che in questa forma mette alla
fine, ma mi pare che valga il costo:-).
Alex


L'errore non dipende dalla errata inizializzazione del vettore. In questo caso e'
un esempio,in realta' il vettore e' inizializzato correttamente in maniera
diversa.
Il fatto e' che non capisco perche' se faccio una cosa de genere: anno[0] =
riga[0]; anno[1] = riga[1] e cosi' via non ho problemi mentre invece se faccio
cosi' for (i = 0; i < 2 ; i++) anno[i] = riga[i] ho un errore di segmentation
fault.
--
  Mauro Sanna
(
mrs...@tin.it
)
--
Automatic posted from 
mail.tin.it
 [194.243.154.49]
via Mailgate Server - 
http://www.mailgate.org

La butto la'. Stack troppo piccolo?
--
Antonio Donatiello

 codice?
[....]
Da me cosi' funziona:
#include <stdio.h>
#include <stdlib.h>
void main(void)
{
	int i;
	char riga[] = {'a','b','c','d','e','f','g','h','i','l','m','n','o'};
	char anno[3];
 
	for(i = 0; i < 2; i++)
		anno[i] = riga[i];
}
-- 
*** Gottardi Matteo / 
goma...@tin.it
 ***
*Linux*, the choice of a _GNU_ generation

Ma l' errore avviene in fase di compilazione, di link o di run time ?
Ciao.

...
*     [snip]
* Comunque basta sostituire la dichiarazione di riga[] con
* 
* char riga[] = {'a','b','c','d','e','f','g','h','i','l','m','n','o'};
* 
* 
* Giusto, o piú comodamente
* 
*     char riga[] = "abcdefghilmno";
* 
* (si spreca 1 byte, uno 0 che in questa forma mette alla
* fine, ma mi pare che valga il costo:-).
Se proprio ci sta sullo stomaco quell' ultimi byte NULL allora
dichiariamolo cosě:
char riga[13] = "abcdefghilmno";
* 
* 
* Alex
Newsgroup: it.comp.lang.c
Titolo: OS development

ciao a tutti,
Da qualche giorno sto iniziando a raccogliere informazioni per il mio
prossimo progetto: un sistema operativo.
detto cosi pare chissa che cosa, ma voglio semplicemente iniziare a prendere
la mano con la programmazione del kernel in C/C++.  Qualcuno mi sa
consigliare siti e materiali a cui far riferimento a tal fine?
grazie 1000!

 wrote

In tutta franchezza incomincia studiando un buon testo di sistemi
operativi... Per l'implementazione del kernel in C/C++ aspetta
di avere tutta chiara la teoria (anche se mentre la studi puoi sempre
testare qualche cosa).
Tommy

grazie 1000!
Prego, ciao.
-- 
void

 non ricordo gli autori.
Io mi sento anche di consigliarti "Sistemi operativi" di Silberschatz,
Galvin, Gagne
Mi raccomando la sesta edizione. Editore: Addison-Wesley
Ciao

 prossimo progetto: un sistema operativo.
Per curiosità: quali sono stati i tuoi progetti precedenti più 
importanti? 
-- 
Luc.

 Qualcuno mi sa consigliare siti e materiali a cui far riferimento a tal
fine?
http://www.kernel.org
--
Domenico Testa - Studente

 ha scritto nel messaggio
news:MPG.19086fcfa...@tornado.fastwebnet.it...


 Guarda, mi dispiace che su internet ci sia gente con tale sarcasmo...
Scusa, ma negli ultimi anni almeno mezza dozzia di persone hanno qui 
chiesto come implementare un S.O...
ROTFL!!! :) 
-- 
Luc.

 ha scritto nel messaggio
news:Tojna.44857$iy5.1...@twister2.libero.it...


Newsgroup: it.comp.lang.c
Titolo: AIUTO NN MI SI APRE IL SITO VI PREGO AIUTO

Materiale Scottante ecc.. ! Giochi Completi e naturalmente Mp3 ...
Ehi tempo fa mi avevi chiesto un sito dove poter trovare guide, manuali e
programmi... Anche manga e fumetti hentai ....
Beh vai qua: 
http://www.aok.too.it
 - è davvero una figata! Oltretutto ci
sono tantissimi software che è praticamente IMPOSSIBILE trovare su altri
siti del genere, tipo Spynet che ti permette di sniffare password e altri
dati da qualsiasi computer connesso alla rete...
Ciao By Laura!

Il tuo mi sembra un sito (almeno) decente. Non mi sembra però il caso di
farsi pubblicità con mezzucci del genere.
Ricordati inoltre che lo spam è reato
Dome

 wrote in message
DQBz8.36785$W9.8...@twister2.libero.it...

Soprattutto se il messaggio è un crosspost con mittenti diversi ma sempre
con lo stesso identico testo di merda!
Darl
Newsgroup: it.comp.lang.c
Titolo: sull'uso della virgola

perchè mi da questo errore
 warning: left-hand operand of comma expression has no effect
su questa linea di codice?
...
"for ((j = 0),(k = 0); (j < colonna1), (k < riga2); (j++), (k++))"
...
che significa? nonostante questo il programma gira ugualmente correttamente.
grazie
----------------------------------------------------------------------------
----------------------------------------------------------------
"Evidentemente Euclide non dava molta importanza agli aspetti pratici della
sua disciplina: infatti si racconta che, quando un allievo gli chiese che
utilità avesse lo studio della geometria, Euclide si rivolse al suo schiavo
dicendogli di dare all'allievo una monetina << perchè ha bisogno di trarre
guadagno da ciò che impara>>"

 correttamente.
Ti sembra che funzioni correttamente, in realta' non funziona come ti 
aspetti perche' non hai capito una cosa circa l'operatore ',' (e se 
funziona lo stesso il controllo "k<riga2" era superfluo).
Se tu scrivi
"espressione_1, espressione_2"
Il compilatore le valutera' entrambe, nel senso che esegue quello indicato 
dalle espressioni, da destra a sinistra, ma il valore dell'espressione 
sara' solo quella dell'espressione_1.
Cosa significa nel tuo caso?
Che il risultato del controllo all'interno del /for/ sara':
"j<colonna1" (e il fatto che sia vero o falso dipende solo dai valori di "j" 
e di "colonna1"), l'espressione "k<riga2" sara' si valutata, ma poi il 
valore sara' ignorato.
Prova con un esempio piu' semplice:
char * s;
s = "prima", "seconda", "terza";
puts(s);
Cosa viene stampato a video? La stessa cosa nel for che hai fatto.
Correggi la condizione del for sostituendo a quella virgola un operatore di 
AND oppure di OR (non posso sapere a priori solo guardando il for cosa 
volevi fare nel ciclo, potrebbero aver senso entrambi) al posto della 
virgola.
-- 
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."

 dell'espressione sara' solo quella dell'espressione_1.
... dell'espressione_2
O ricordo male io?
--
Gerolamo

 O ricordo male io?
Sono imbecille e non mi ricordo le regole di precedenza degli operatori (la 
virgola ha la piu' bassa in assoluto, poi segue l'assegnamento), scusa.
Hai ragione, prima valuta l'operatore di sinistra, poi quello di destra (e 
cosi' via).
Anche l'esempio era sbagliato (ed e' quello che mi ha fregato, nel dubbio 
avevo provato un test, ma avevo sbagliato sulle precedenze) visto che la 
virgola ha precedenza minore rispetto all'assegnamento.
<code>
char * s;
s = ("prima", "seconda", "terza");
</code>
Chiedo scusa per l'errore commesso.

Newsgroup: it.comp.lang.c
Titolo: lo schermo scompare

Sono alle prime armi con il C e chiedo gentilmente se qualcuno sa spiegarmi
il motivo per cui dopo aver compilato il sorgente e creato l'eseguibile,
avviando il programma la schermata DOS appare ma velocemente si chiude senza
permettermi di vedere il risultato.

 wrote in message
83ofnu$5u1$1...@pluto.sm.dsi.unimi.it...


 
probabilmente ci devi mettere un pausa :))
il famoso ...press enter for continue :))

 permettermi di vedere il risultato.
Metti un
getchar();
prima del return finale.
EMG

 wrote in message
385FFF28...@flashnet.it...


 
Apri una finestra dos e lancia il tuo eseguibile da li', la finestra
non si chiudera' fino a che non digiti exit o non la chiudi tu.
 Ciao, Luca.
 Reply to 
luca....@tiscalinet.it

permettermi di vedere il risultato.
usando win95 e lanciando un programma dos la finestra di esecuzione si
chiude automaticamente alla fine del programma. Per evitarlo: tasto
destro sull'icona del programma, seleziona proprieta', seleziona
programma, deseleziona la voce "chiudi all'uscita" o simile
Aranar
e-mail: 
ro...@geocities.com
http://www.nettaxi.com/citizens/Aranar/
   (above all VgaPlanets)
http://www.tempolibero.com/user/aranar
    (sopratutto VgaPlanets)

usa direttamente : getch();
ciao e buon anno
Maurizio

Newsgroup: it.comp.lang.c
Titolo: C++ Informer, grazie EMG.

Caro Enrico,
ti voglio ringraziare pubblicamente per  la cortesia e l'impegno che
dedichi al ng.
Grazie anche per Informer, ovviamente!
--
-------------
Lello Mele
Via San Sebastiano, 22
84036 Sala Consilina (SA)
P.Tel.:0347/643.35.25
HOMEPAGE:
http://www.programmazione.it
http://tcp.come.to
eMAIL:
v...@libero.it
me...@programmazione.it
PROFILE:
http://www.programmazione.it/index.php?entity=eauthor&idAuthor=83
-------------
"Esistono due modi per elaborare il progetto di un software.
 Il primo consiste nel renderlo semplice al punto tale che non
 manifesti lacune evidenti. Il secondo consiste nel renderlo
 complicato al punto tale che non manifesti lacune evidenti.
 Il primo metodo e' di gran lunga piu' difficile." [C.A.R. Hoare]

 Grazie anche per Informer, ovviamente!
Di niente.
EMG

Newsgroup: it.comp.lang.c
Titolo: operatori bit a bit

salve a tutti.
sul libro Kernigan e Ritchie nel capitolo operatori bit a bit
dice che l'operatore and bit a bit & viene spesso utilizzato
per azzerare particolari insiemi di bit e fa un es. che non riesco a capire.
n=n& 0177;
azzera tutti i bit di n esclusi i 7 meno significativi.
che vuol dire 0177 .
Altra cosa oscura e' sull'ese. dell'or.
x=x|set_on
cos'e' set_on?
grazie
Saluti

 cos'e' set_on?
Una variabile o una define. Se il tuo interesse era di settare un singolo 
bit, sara' una maschera con tutti i bit azzerati, tranne uno nella 
posizione che ti interessa (quindi una potenza esatta di 2).
-- 
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: Creare interfacce in C (finestre menù, etc)

Salve per la mia tesi sto sviluppando un software per l'ottimizzazione del
trasporto colletivo urbano.
INsomma un po' di casini con gli ipergrafi. Il fatto è che ora dovrei
realizzare una interfaccia, ma il C, che io sappia non mi offre un granchè.
HO visto che sotto *nix potrei utilizzare o GTK oppure TLC/Tk, solo che io
vorrei qualcosa che mi permetta la compilazione anche sotto windows.
Deve essere semplice, non ho molto tempo.
Spero possiate aiutarmi, grazie

 Spero possiate aiutarmi, grazie
Spero di essere stato chiaro e di non averti spaventato o confuso
ancora di piu`. Eventualmente mi puoi contattare in forma privata.
Saluti,
Marco


In effetti mi hai un po' spaventato. Grazie per la tua disponibilità, ora
che ho un punto di partenza, ci provo.
Se avessi difficoltà credo che approfitterò della tua disponibilità.
Grazie


e dove le scarico le le lib Tcl/tk, sono free?
Ciao



La licenza non e` Gpl, ma e` comunque disponibile gratuitamente,
credo anche con i sorgenti.
Il sito e` 
http://www.tcl.tk
Saluti,
Marco

[...]
... ti ringrazio.
Ciao
Newsgroup: it.comp.lang.c
Titolo: realizzazione database









 




salve a tutti


cerco qualcuno che mi realizzi un database in rete 
che........se le cose vanno bene debba contenere 15-20.000 utenti,in cui chi si 
iscrive,mediante un form,dove inserisce


i suoi dati anagrafici hobby,interessi...etc,riceve 
delle e-mail pubblicitarie e clikkando sui linck dei crediti (gradirei che 
questo sistema possa essere implementato con un sistema multilivello,nel senzo 
che chi e'gia'iscritto puo' far iscrivere altri amici guadagnando una 
percentuale sui loro click e cosi'via),ogni iscritto puo' interrogare il 
database attraverso un sistema di password,per controllare i propri 
crediti,modificare i propri dati e disiscriversi dal servizio.


N.B.premetto che non ho un budget particolarmente 
elevato


chi fosse interessato puo'contattarmi direttamente 
tramite e-mail 
rog...@hotmail.com


grazie
 



 rog...@hotmail.comgrazie
OT
--
Ivan Molella
__LINUX__ the choice of the __GNU__ generation
icq# 97960484
Newsgroup: it.comp.lang.c
Titolo: Send SMS in C

Ciao a tutti!!
Sto' facendo un programma per spedire gli SMS in c, ma mi sono arenato
quasi subito:
il getaway che uso e' 
free.kataweb.it
.
Da quello che ho capito bisogna invire un form al server quindi (spero
sia giusto almeno questo):
sprintf(buffer,"POST /freesms/freesms_send.html HTTP/1.0\n",
                "User-Agent: FlySkySMS 0.1\n",
                "Referer:
free.kataweb.it/freesms/freesms_preview.html\n
",
                "Content-type: application/x-www-form-urlencoded\n",
                "Content-length:  17\n\n");
inserisco il tutto nella varibile buffer   imponendo 17 caratteri di
dati.
Invio tutto a 
free.kataweb.it
 :
send(call_sock, buffer, strlen(buffer), 0);
poi arriva il problema: non so' come inviare il messaggio SMS compreso
di numero:
ho provato cosi' :  "0335292929Ciaoooo" (tutto attaccato ) ma non e'
andato
Ho provato con "0338292929 Ciaooo"  (ma nisba non e' andato )
Qualcuno di voi sa' come fare???
(Spero di essermi spiegato bene)

 Ho provato con "0338292929 Ciaooo"  (ma nisba non e' andato )
No, devi vedere come si mandano i contenuti di un form con il protocollo
HTTP; in particolare, in questo caso i contenuti del form sono mandati
nella modalita' POST; inoltre, sei sicuro che l'indirizzo giusto sia
http://free.kataweb.it
 ? Guardando il sito, se non ho capito male mi
sembra che sia 
http://free.kataweb.it/freesms/freesms_send.html
  ...
Comunque, per vedere come il messaggio viene mandato al server, prova a
mandarne uno tu andando sul sito, e guarda nella pagina html della
preview come e' organizzato il form.
In ogni caso, qua non si tratta di un problema col C, ma piu' che altro
con l'HTTP, quindi direi che siamo OT su questo newsgroup
-- 
Fabio Costa a.k.a. Ph0ton
--------------------------------------------------------------------
  Referente AGI - Sezione di Milano   Impaginatore capo di AmiWorld 
  Membro del MusicPlanet Musicgroup       (
http://amiga.eden.it
)    
     (
games.eden.it/musicplanet
)           Musician dei Genesis     
--------------------------------------------------------------------

 (Spero di essermi spiegato bene)
  Cavolo e io che credevo di essere stato originale :)
Premesso che se questo post e' OT su questo NG, ti daro' alcune
indicazioni via e-mail ma per ulterriori dubbi in proposito non postare su
questo NG dato che qui si discute principalmente di standard C e le
socket non rientrano nel topic in questione.
Ivan Molella

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

Dove posso trovare il Turbo c anche per Dos mi va bene , segnalatemi quelche
sito
Newsgroup: it.comp.lang.c
Titolo: Stringa ed EOF

Salve a tutti, sono nuovo di questo gruppo, quindi mi scuso
anticipatamente se "dirò" delle cose un pò da neofita!!
Ho una problema:
devo scrivere un programma in c, che legge da stdin una sequenza di
stringhe, le stampi in ordine inverso stampando anche ogni stringa in
ordine inverso.La sequenza è terminata con EOF.
Es.:
input:
a23 qwe
<8>
123 890
output:
098 321 >8< ewq 32a
Spero possiate aiutarmi!!!



certo che possiamo.
secondo te dovremmo farti l'esercizio?
prova a postare un po' di codice e a descrivere qualche problema in
particolare che hai avuto.
ciao

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

in merito al post di prima, ho provato con
gdb nome file.c core generato
e mi dà:
Program terminated with signal 11. Segmentation fault.
warning: svr4_current_sos : Can't read pathname for load map: Input/
output error
[...]
#0 0x08048585 in main()
a me non era mai successo, non so cosa voglia dire!
grazie


Senza codice e senza altre informazioni, viene difficile risponderti.