mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c
Titolo: librerie monitoraggio fs

salve a tutti.
ho un programma che, presa in input una (o più) directory, ne analizza il
contenuto e mette i dati in un db. Quello che vorrei è che, se l'utente
crea/sposta/cancella/ecc i file in queste directory, il mio db
resti "sincronizzato".
Per fare questo mi vengono in mente due soluzioni:
1) controllare "periodicamente" le directory alla ricerca di differenze
2) utilizzare qualche tipo di informazione "ad eventi" che mi può venire dal
   sistema operativo[1]
posto che, personalmente, preferirei usare l'approccio 2, mi sapete
consigliare qualche libreria che possa essermi utile? l'ideale (dal mio
punto di vista, ovvio) sarebbe avere la possibilità di scrivere solo le
funzioni di callback da usare quando un file viene creato/spostato/ecc...
[1] linux su x86 e ARM
-- 
Under construction



credo che tu sia abbastanza OT..
comunque cerca informazioni su inotify..
-- 
www.iuz-lab.info

Newsgroup: it.comp.lang.c
Titolo: Giudizio su manuale

Sfogliando il catalogo dell'Apogeo ho adocchiato due manuali di C++
C++ Fondamenti di programmazione  di Deitel &amp; Deitel
e il secondo volume
C++ Tecniche avanzate di programmazione di Deitel
Qualcuno di voi sa darmi un giudizio? Vorrei imparare il C++ (so solo il C
per ora) e sto cercando un manuale valido.
Saluti
        Maurizio
P.S. Sono accetti anche consigli su altre pubblicazioni :)

 wrote in message
news:6ZEn8.68914$%g7.22...@twister2.libero.it...

Non so aiutarti nello specifico ma ho letto il D&D sul linguaggio C e
l'ho trovato ottimo.
Se la qualità è la stessa anche per i manuali C++ (cosa probabile...)
allora compralo ^^
Inizierò anch'io lo studio del c++ e al 90% comprerò i volumi di Deitel
padre e figlio :)
Ciao 
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

per ora) e sto cercando un manuale valido.
Quando hai dei dubbi su un libro cerca su 
www.accu.org
 e leggiti la
recensione :)
Il tuo discorso e' OT pero'... chiedere quali sono i libri migliori
per imparare il C++ e' argomento di it.comp.lang.c++. Se avessi
chiesto la ti avrebbero risposto una cosa del tipo:
<CITAZIONE>
si, sono buoni, ma i migliori libri per iniziare sono:
- "C++ Programming Language" di Bjarne Stroustrup (l'autore del
linguaggio) - terza edizione italiana oppure la special edition, ma mi
pare ci sia solo in inglese per ora (e costa il doppio della terza
edizione in italiano)
- "C++ Primer" di Lippman
</CITAZIONE>
Per il C++ la bibbia si chiama Stroustrup e ogni programmatore
dovrebbe averlo :)  Se non l'ha capito lui il C++ non l'ha capito
nessuno :P
-- 
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: strcmp senza string.h.

Salve.
Se non sbaglio per poter utilizzare funzioni che operano sulle stringhe
e' necessario includere <string.h>.
Ebbene io sto utilizzando nel codice la funzione strcmp senza il
suddetto incluso in nessuna parte del codice dei due file sorgenti che
utilizzo, e funziona.
E' possibile?
Grazie.
Mauro Sanna
(
mrs...@tin.it
)
--
Automatic posted from 
mail.tin.it
 [194.243.154.49]
via Mailgate Server - 
http://www.mailgate.org

...


Il file string.h contiene tra le altre cose i prototype delle funzioni per
la manipolazione delle stringhe.
Se non lo includi il compilatore assume che il valore delle funzioni che
chiami sia un intero, cosa vera per strcmp. Quindi funziona. Ad esempio se
usassi la strchr che torna un char * dovresti avere dei problemi.
Il tuo compilatore dovrebbe segnalarti un Warning se alzi il livello di
segnalazione.
Ciao.
--
Antonio Donatiello

Newsgroup: it.comp.lang.c
Titolo: findfirst e findnext

Dunque, premetto che non ho ancora capito se si puo' parlare di
funzioni come quelle nel subject, visto che non sono standard e che
ultimamente c'e' un po' di confusione su cosa sia OT e cosa IT. Cmq io
pongo la domanda, speriamo bene ;-)
Il mio problema e' che usando queste funzioni per scorrere i file di
una dir in dos con djgpp, se nel ciclo della scansione della dir
modifico dei file, i primi che sono stati modificati vengono presi due
volte dalla funzione findnext.
Ad esempio, scorrendo una dir con 5 file, i primi due vengono presi
due volte. Per quale motivo?
Grazie per gli eventuali chiarimenti.
--
 Ciao, Luca.
 Reply to 
luca....@tiscalinet.it

 volte dalla funzione findnext.
Non puoi modificare la directory mentre la scorri. Copiati tutti i nomi
in un array e poi esegui le modifiche.
EMG

 
Cioe' vuoi dire che se ho una dir con 100.000 file, devo salvare tutti
i nomi anche per modificarne solo alcuni?


 i nomi anche per modificarne solo alcuni?
Salvati solo quelli che ti interessa modificare, allora. Poi, alla fine,
li modifichi.
EMG

 

Hai ragione! Che fesso che sono: scorro la dir, salvo i nomi dei file
da modificare, modifico i file salvati. Piu' facile di cosi' si muore
:-)

Newsgroup: it.comp.lang.c
Titolo: [RISULTATO] it.comp.lang.csharp non approvato


Per il GCN, Carlo Fusco.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.0 (GNU/Linux)
Comment: key availlable here 
http://samvise.freeshell.org/gpg_key.html
iD8DBQE9zjKmjjyr6s/xJZgRAhPmAKDG2FVMjX7TnCdomZCqqsELw7O2WACeK347
r0WWorKMo/CjMwfIZNNHFHA=
=uhhD
-----END PGP SIGNATURE-----

 creazione del gruppo non è stata approvata.
Mi congratulo con questo risultato e con voi queste cose:
1) Perchè questo inutile ng, evidentemente *SPONSORIZZATO* presso di voi
del GCN da qualcuno della M$ non ha ricevuto assolutamente voti! (cira 80
sono una miseria).
Che fosse sponsorizzato si capisce dal fatto che avendo ricevuto così
pochi voti è *EVIDENTE* che non poteva avere il traffico pregresso
richiesto dalle *vostre* regole per attivare la votazione; regole imposte
a ben altri ng, dedicati a linguaggi molto più utilizzati e seguiti! un
caso per tutti il tanto agognato ng per python, di cui più volte il GCN ha
rifiutato la RFD.
Adesso verrebbe da sbattervi in faccia il traffico generato da python su
it.comp.lang, completamente monopolizzato dal tag [PYTHON].
2) Mi congratulo anche per aver sbattuto su un ng pubblicamente
consultabile *tutti* gli indirizzi email dei votanti (che, ironia della
sorte, devo anche essere *validi*, quindi senza protezioni del tipo
_NOSPAM_, _REMOVE_, ecc. ecc.) che adesso saranno preda di qualunque
strumento automatico a disposizione degli SPAMMERS. Anzi a questo punto
possiamo dire che siete anche voi degli SPAMMER, o almeno collaborate
ATTIVAMENTE, date le circostanze.
Last but not least, dato che ne ho la possibilità, e soprattutto la voglia
ripensando a tutte le vostre carognate, lasciatevi mandare a FANCULO dal
più profondo!! alla faccia della netiquette per una volta almeno.
Con il più profondo godimento.
Un vostro *ammiratore*
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 ATTIVAMENTE, date le circostanze.
Non potevi reclamare privatamente al GCN e non con un post pubblico?
Rhymes
--------------------------------
Inviato via 
http://usenet.libero.it

 Non potevi reclamare privatamente al GCN e non con un post pubblico?
YHBT
K
-- 
Home: 
http://kronoz.cjb.net
Dicono che  il cane sia  il miglior  amico dell'uomo. Secondo me  non e`
vero. Quanti dei vostri amici avete fatto castrare, recentemente?

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

sdsasad

 
E usare it.test che e'  fatto  apposta per questo ????
Newsgroup: it.comp.lang.c
Titolo: Allocazione dinamica di una matrice

Devo allocare dinamicamente una matrice di char dove ogni riga della matrice
è di 8 carateri.
N è la quantità di riche che la matrice dovrà avere.
Il presente codice funziona solo se la matric e ha dimensioni di 7x8.
questo limite per me non va bene.
Qualcuno mi può aiutare?
 char    *scompatto[8];
 for (  i = 0 ; i < N ; i++  ) {
  if ( (scompatto[i] = calloc(8,sizeof(char)) ) == NULL ) {
   printf("Impossibile allocare memoria CON");
   exit(1);
  }
 }


char  **matr;
matr=malloc(N*sizeof(char*));
for(i=0;i<N;i++)
matr[i]=malloc(8*sizeof(char));
Così dovrebbe funzionare...almeno spero....
Enrico S.
--
Webmaster della Pagina NON Ufficiale del SonyCRX100
SonyCRX120,  SonyCRX140E/S, SonyCRX100EX, HP8100
HP8200, HP9100 & HP9200
http://www.freeweb.org/computer/SonyCRX100/

Newsgroup: it.comp.lang.c
Titolo: strcmp non funziona

Utilizzando questo ciclo per cercare una parola in un file:
while (!feof(fp)) {
    fgets(par,20,fp);
    if (strcmp(par,parola)==0) {
        printf("\nNel file vi e\' %s ",parola);
        fclose(fp);
        return 0;
    }
}
la parola non viene trovata anche se c'e'. Invece se nella if scrivo:
if (strstr(par,parola)!=NULL)
la trova. Ma ovviamente non ottengo sempre il risultato cercato. Come faccio
ad
usare appropriatamente la strcmp?
--
---------------------------------------------------
There are 10 kinds of people in the world:
those who understand binary, and those who don't
---------------------------------------------------

la trova.
strcmp() fa un confronto tra due stringhe.
strstr() invece, cerca una stringa nell'altra.
Gli scopi sono diversi e vanno usate in dipendenza da come è costruito
il tuo file.
-- 
Andrea Laforgia
#exclude <windows.h>

> In che modo è fatto il file ?
E' un dizionario, le parole sono scritte una in ogni riga, cosi':
parola1
parola2
ecc.
Comunque, adesso funziona. Il problema era proprio l'accodamento del new
line. Thanks!

 usare appropriatamente la strcmp?
Credo che il problema derivi dalla fgets e la dimensione della parola che
cerchi
-- 
Rhymes (rhy...@NOSPAMmyself.com)
linux registered user #219707
linux registered machine #172395
Newsgroup: it.comp.lang.c
Titolo: maledetta "getwd()"

Salve a tutti,
    devo fare un programma C (in ambiente Linux) che ha bisogno di sapere
quale è la sua directory di lavoro (quella corrente).
Per tale scopo pensavo di utilizzare la funzione di libreria (<unistd.h> mi
sembra) che si occupa di questo:
char *getwd(char *buff)
quando vado a compilare, il gcc mi dà un warning dicendomi che la funzione
'getwd' è pericolosa e che non dovrebbe essere usata.
Tuttavia, la prima volta che ho lanciato il programma è andato tutto
bene......poi mi ha dato segmentation fault (sicuramente per la getwd!!!)
La mia domanda è questa:
-  succede anche a voi? (non ricordo la versione del compilatore, ma ho
installato la Mandrake 7.2 di Linux & C di gennaio......penso che sia
aggiornata)
- come posso risolvere il mio problema? utilizzando altre funzioni?
aggirando il problema con qualche trucchetto?
Grazie per una risposta,
Marco

Marco wrote:

Prova con la funzione get_current_dir_name che e` inclusa in unistd.h
Prototipo: char *get_current_dir_name(void);
Sotto Mandrake 7.1 (kernel 2.2), con la funzione che ho citato sopra, non ho
avuto problemi.
     Wizche

 'getwd' è pericolosa e che non dovrebbe essere usata.
Come da man page:
  getwd,   which   is  only  prototyped  if  _BSD_SOURCE  or
  _XOPEN_SOURCE_EXTENDED is defined, will not malloc(3)  any
  memory.  The  buf argument should be a pointer to an array
  at least PATH_MAX bytes long.  getwd does only return  the
  first PATH_MAX bytes of the actual pathname.
getwd e` pericolosa perche' non  alloca nessuna memoria (al contrario di
getcwd e  get_current_dir_name, e  restituisce il path  ad un  array che
*dovrebbe* contenere il path. Se il path fosse troppo lungo, i risultati
potrebbero essere pericolosi (molti buffer overflow si basano appunto su
questo).
Usa get_current_dir_name().
-- 
Emmanuele Bassi         |  Linux: [ 
http://digilander.iol.it/ebassi/linux/
 ]
                        |   SLRN: [ 
http://digilander.iol.it/ebassi/slrn/
  ]
emmanue...@iol.it
  |   SETI: [ 
http://digilander.iol.it/ebassi/seti/
  ]
  GnuPG Key Fingerprint: 9747 635E B95A B0B3 4370 1CAA CAF7 512B 945C A44C
Newsgroup: it.comp.lang.c
Titolo: compilatore c per windows

mi trovo a dover far installare delle macchine dual boot con linux e
windows. In entrambi i sistemi operativi devo predisporre dei compilatori
c/c++. Per la parte linux non ci sono problemi, li uso quotidianamente e
so cosa metterci.
Il dubbio nasce sulla piattaforma windows, dove sono molto ignorante.
Secondo voi, che compilatore mi conviene far installare? Considerate che
queste macchine dovranno essere usate da degli studenti universitari di
vari atenei per far girare dei programmi di simulazione, quindi mi 
serve qualcosa che sia il più àffine possibile agli standard, onde 
evitare lamentele.
io avevo pensato ai compilatori della borland, che ne dite?

Qui trovi una versione windows del classico GCC linux:
http://www.cs.colorado.edu/~main/cs1300/cs1300.zip
Oppure c'e' Borland C++ 5.0 che è free e puoi scaricarlo tranquillamente dal
sito della Borland...
Ciao

 io avevo pensato ai compilatori della borland, che ne dite?
Mi orienterei decisamente verso Dev-C++ che è un IDE grafico open source
con supporto per i compilatori GCC based. Nel download binario è fornito
ready-to-go con Mingw/GCC.
Non avrei alcun dubbio a proposito.
http://www.bloodshed.net/dev/devcpp.html

 
http://www.bloodshed.net/dev/devcpp.html
Una nota: installa la versione 5 anche se e' ancora beta... potrebbero
esserci ancora dei bug, ma l'IDE vale la pena (da quello che ho visto).
Tra l'altro, in caso di necessita', puo' fare da frontend anche per il
Cygwin.
In alternativa puoi anche installare l'Lcc-win32 (ma e' solo un compilatore
C, se ti serve anche il C++ meglio il DEV-C).
-- 
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: Programmazione Dinamica

Ho superato lo scritto di Programmazione Dinamica con Benerecetti
!!!!!!!!!!!!!!!!!!!!!!!
:-))))))))))

 !!!!!!!!!!!!!!!!!!!!!!!
naaaaaa!! Davč??
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

> Ho superato lo scritto di Programmazione Dinamica con Benerecetti
Per cortesia, rispetta il topic di questo gruppo.

Newsgroup: it.comp.lang.c
Titolo: Quale linguaggio?

 Aspetto un vostro consiglio
Delphi della Borland

 Delphi della Borland
"Pessimo, vai nell'osteria di fronte"
sono basito. o_O
-- 
-=[]=---iAN CooG---=[]=-
I will use Google before asking dumb questions
I will use Google before asking dumb questions
I will use Google before asking dumb questions
...


Veramente pessimo...

 della programmazione?
In realtà la scelta del linguaggio dipende da quello che poi
ci vuoi fare...
Ti consiglio di riproporre la domanda su it.comp.lang, usando
il tag [CONFRONTO]
ciao
-- 
Gerolamo
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

Aspetto un vostro consiglio
Io ho intrapreso la strada
del C/C++: uno e buono...
Ciao

Newsgroup: it.comp.lang.c
Titolo: lavorare con le immagini?

creando un programma che abbia a che fare con immagini, qualcuno sa dirmi
che Header includere?
lavoro sotto Winzoz
grazie

 ha scritto nel messaggio
news:mwV78.24668$nI1.7...@twister1.libero.it...

prego!!!
Tuttavia non credo che qualcuno ti risponderà mai...la tua domanda é OT e
pure sensa senso....esistono un bel po' di questioni che dovresti spiegare
riguardo a che tipo di immagini fai riferimento e cosa ci vuoi fare e con
che compilatore....un consiglio é: rivolgiti ai pazzi che lavorano sotto
windows nel gruppo a loro dedicato!!!
saluti

 ha scritto nel messaggio
news:a3tjuf$f0n$1...@lacerta.tiscalinet.it...


da me fatto e poi dare un'immagine in uscita.... abbastanza chiaro?
Spostati magari su it.comp.programmare.win32 che e' gia' piu' vicino a
quello che vuoi ottenere.
Nota: il termine immagine non ha senso informaticamente parlando.
Esistono tante codifiche per le immagini e per ognuna algoritmi
particolari per lavorarci.
Specifica anche che formato di immagini usi e ti sapranno indicare
verso le librerie giuste.
Mox
Newsgroup: it.comp.lang.c
Titolo: Disegnare grafi

Salve gente,
sapete se esiste un libreria per linux che mi permetta di disegnare grafi?
Tnx



il ng giusto per domande simili č it.comp.os.linux.development;
graphviz comunque č probabilmente quello che stai cercando, un occhio a
boost::graph in particolare a write_graphviz probabilmente possono esserti
d'aiuto
http://www.boost.org/libs/graph/doc/table_of_contents.html
sbirish

 d'aiuto
chiedo venia.. credevo di aver postato in iclc++
sbirish

Newsgroup: it.comp.lang.c
Titolo: spawnl e RAM, urgente

Ciao a tutti,
ho il seguente problema:
uso piu'  la funzione spawnl (con l'opzione P_WAIT) all'interno di un
programma C per richiamare un eseguibile variandone automaticamente i
parametri e ottenere output diversi in modo automatico, ma dopo un bel po'
ottengo un messaggio di memoria esaurita. E' possibile che chiamate continue
a spawnl non diano il tempo di liberare la memoria che quindi finisce per
esaurirsi? Oppure sbaglio io qualcosa?
Grazie in anticipo
Antonio
-- 
Posted from 
mail-4.tiscalinet.it
 [195.130.225.150] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 esaurirsi?
se programmi in DOS, verifica che il programma eseguito con spawn non
termini lasciando un pezzo di se residente.
comunque credo che il problema sia da imputare al programma eseguito e non
alla funzione spawn.
ciao
donCiccio
Newsgroup: it.comp.lang.c
Titolo: come mai?

ciao a tutti...un piccolissimo chiarimento:
come mai in cosice qui stotto, esegue 2 volte il printf finale x 
stampare l'array??? n credo esegua il printf del caso "case 88"!!
s = 0;
while (s != 99)
{
x = 99;
for (k = 0; k<n; k++)
{
    a[k] = x;
    x = x - 11;
}
    printf("____________MENU OPERAZIONI________________\n");
    printf("Insertion Sort: 1 - iterativo;  2 - ricorsivo\n");
    printf("Selection Sort: 3 - iterativo;  4 - ricorsivo\n");
    printf("Exchange Sort:  5 - iterativo;  6 - ricorsivo\n");
    printf("Shell Sort:     7 - iterativo;  8 - ricorsivo\n");
    printf("88 - Prova se l'array è ancora disordinato!!!\n");
    printf(" 99 per terminare\n");
    printf("seleziona ==> ");
    scanf("%d", &s);
    switch(s){
                case 1 : {insertion_sort(a, n);}
                case 2 : {;}
                case 3 : {selection_sort(a, n);}
                case 4 : {;}
                case 5 : {exchange_sort(a, n);}
                case 6 : {;}
                case 7 : {shell_sort(a, n);}
                case 88 : {
                     for (i = 0; i< n; i++)
                     {printf("a[%d] == %.0f\n", i, a[i]);}
                          }
             }
/* ---------------------Stampa dell'array - Valido sempre 
--------------------*/
printf("Stampa dell'array ardinato\n");
for (i = 0; i< n; i++)
{
    printf("a[%d] == %.0f\n", i, a[i]);
}
-- 
Renato Zero
Provaci a riemergere, da quei sogni che il tuo silenzio ha ucciso...che 
ne sai, dell'origine, delle lacrime, se non ha mai pianto...provaci, a 
scommettere, che al traguardo tu non sarai secondo...agile è 
quest'anima,  non puoi vincerla, non la puoi ingannare più......PROVA A 
PRENDERMI......


devi aggiungere l'istruzione "break;" alla fine di ogni "case" sennò
verranno eseguite tutte le istruzioni in cascata a partire da quella
relativa al caso che si e' verificato.

 stampare l'array??? n credo esegua il printf del caso "case 88"!!
[cut]
Questo programma fa più di quello che credi ;) Devi inserire una
istruzione break; alla fine di ogni blocco case, altrimenti il programma
esegue tutte le istruzioni in cascata fino alla fine dello switch.
Inoltre, le parentesi graffe presenti in ogni blocco case sono inutili.
Ciao a tutti
Dark Knight
-- 
The Lord Of The (Token) Ring
  (the fellowship of the packet)
"One Ring to link them all, One Ring to ping them,
one Ring to bring them all and in the darkness sniff them."

risolto..grazie mille....

Newsgroup: it.comp.lang.c
Titolo: Help: funzione 640x480

Salve o Dči del C!
Sono un ragazzo di 16 anni ed ho sviluppato un gioco solo nella parte
dei dati e del controllo, mi manca completamente la parte grafica.
Per questo vorrei chiedere a voi esperti: come posso creare
una funzione C scritta in ASM che imposti il modo 640x400?
Ringrazio fin da ora chi vorrą darmi delucidazioni sull'argomento.
stone...@tin.it

On Fri, 22 Jun 2001 07:44:37 GMT, 
stone...@tin.it
 (stonefree84)
wrote:

ti consiglierei di appoggiarti a librerie specifiche, altrimenti
diventa un suicidio! Ad esempio, se usi DJGPP sotto DOS potresti usare
la lib Allegro.
Anto
--
Antonio Cuni, 19 anni, studente
Brainbench C++ Master: 4.6, higher than 98% of all previous test takers.
C Language: 3.32, higher than 79% of all previous test takers.
Guida C/C++ di Programmazione.it: 
http://cpp.programmazione.it



Allora mi puoi consigliare qualche manuale (online)
per apprendere  sull'argomento?

per apprendere  sull'argomento?
se segui i linik (partendo da 
www.delorie.com
) trovi alcuni tutorial
in inglese; in italiano non lo so.


Newsgroup: it.comp.lang.c
Titolo: billhates@home.com

Thanks!
ByeZ!
Alkondor

Thanks!
MA LA VUOI SMETTERE ????

Newsgroup: it.comp.lang.c
Titolo: errore paranormale in un programma C

Salve,
ho win98 ed il dev c++.
ho rielaborato un programma in C prelevato da internet. Non lo posto perchè
è lunghissimo.
Capita però un fenomeno "paranormale".
Esso contiene molteplici funzioni. Una funzione contiene la dichiarazione di
variabile:
int n;
Però a me pare non venga mai impiegata al suo interno.
Ora se io lascio questa dichiarazione, allora la compilazione del codice
totale è ok, e la
esecuzione è ok.
Se la rimuovo, allora la compilazione rimane ok, ma la esecuzione va ko
(a metà esecuzione si apre la finestra di errore di windows).
ora il fatto che la compilazione sia ok, implica che in effetti la variabile
"n" non venga mai
impiegata in quella funzione, e pertanto non ci sia l'esigenza sintattica di
dichiararla. E'
corretta questa deduzione?
allora perchè se la rimuovo, compare l'errore in esecuzione? A cosa può
essere dovuto?
Considerate che:
1)tutte le variabili sono locali
2)nessun parametro passato alla funzione ha lo stesso nome di una variabile
interna al codice
3)la variabile "n" non esiste in nessuna altra funzione(neanche nel main()).
Come si può spiegare questo stranissimo fenomeno?
Grazie,
adriano

 Come si può spiegare questo stranissimo fenomeno?
Il codice è sbagliato, ma se dichiari quella variabile l'errore non si 
manifesta.
E.

 > Come si può spiegare questo stranissimo fenomeno?
Sicuramente il codice è sbagliato. Il fatto che lasciando una
variabile non utilizzata il codice funziona potrebbe indicare
che hai una scrittura incongrua nel tuo stack, visto che solo variabili
automatiche, che magari viene assorbita casualmente dalla posizione
della  tua variabile 'spare'.
Questo puo' significare che hai un puntatore errato da qualche
parte o che hai definito un buffer locale di N elementi e ne scrivi N+x
o altro problema simile.
bye
brix
Newsgroup: it.comp.lang.c
Titolo: openGL e glut.h

Ciao,
ho bisogno ancora di un aiuto per le librerie openGL.
Sul compilatore DevC++ nella cartella ...include\GL ci sono tre librerie
openGL "gl.h", "glaux.h" e "glu.h"! a me serve però anche la "glut.h"...
sapete dirmi dove la posso trovare, se è necessario scaricare tutto il
pacchetto GLUT (o si trova e basta solo la glut.h) e come si fà poi a
configurare il compilatore per poterla utilizzare?(basta metterla nella
cartella ...include\GL?)
vi ringrazio per qualunque aiuto e suggerimento :-)
ciao a tutti,
william

cartella ...include\GL?)
fai una ricerca, io l'ho trovata con google e la metti nella cartella
degli include files
----
Lawrence "Rhymes" Oluyede
rhy...@myself.com

 degli include files
grazie... l'ho trovata su 
http://sites.netscape.net/ptrpck/glut.htm
 ...il
file è "glutming.zip" e c'è tutto un pacchetto di librerie, provo ad
inserirle nelle cartelle "include" e "lib" di DevC++... spero che funzioni
:-)
ciao,
william
Newsgroup: it.comp.lang.c
Titolo: algoritmo compressione gif

Ciao a tutti,
qualcuno mi puņ aiutare a risolvere il mio problema?
sto scrivendo un programma e una delle operazioni che deve fare č di
trasformare una immagine bitmap in formato gif 89a o gif 87 (fa lo stesso
visto che  non prevedo di utilizzare trasparenze). Non so assolutamente
nulla dell'algoritmo di compressione gif. Sapreste indicarmi dove posso
recuperare l'algoritmo in questione o il codice per risolvere il mio
problema.
p.s. non rispondetemi che č brevettato da Unisys per cui non lo posso usare
(a meno che non intenda pagarne la royalty) perchč non me ne frega
assolutamente nulla. In ogni caso se qualcuno avesse delle remore per questa
ragione, gli posso inviare, privatamente, una e-mail in cui giuro sulle
poppe della mia collega Susanna (che č veramente tutta panna!!) che pagherņ
il dovuto con molto piacere.
p.s.2 Susanna dice che sono un porco cinico!
p.s.3 non sono un cinico!

assolutamente nulla.
In realta' i diritti vanno pagati a CompuServe (che paga poi le
royalties in minima parte a Unisys).  Onestamente, il formato GIF e'
troppo vecchio (considera che non supporta + di 256 colori).  Forse
faresti meglio ad interessarti a PNG.

Newsgroup: it.comp.lang.c
Titolo: Dove trovo MASM O TASM ???? (o analoghi)

Salve,
l'oggetto della mia e-mail di fatto parla da solo.
Mi servirebbe il MASM o il TASM per esercitarmi con l'assembly, ma non so
dove trovarli. A86 non mi compila nulla, il libro che sto seguendo copre i
due assemblatori appena accennati.
Grazie in anticipo,
Tommy
spac...@tin.it

Trovi il link per l'ultima versione su 
www.programmazione.it


 volendo esiste il nasm che é freeware ed é fatto dagli hackers....lo trovi
con una semplice richiesta su altavista e,secondo me, é molto valido!
Newsgroup: it.comp.lang.c
Titolo: fflush o simili...

Salve, ho un problema con la stampa su file (ma anche a video) di alcune 
stringhe di caratteri, in pratica memorizzo COGNOME-NOME-INDIRIZZO etc etc e 
vorrei salvli su un file tutti sulla stessa riga ma il COGNOME (o meglio la 
prima stringa che inserisco) mi viene stampata con un "a capo" senza che nel 
codice sia presente...
Ho chiesto un pò e mi hanno detto che sono problemi "noti" del getchar ed 
anche alcuni bug del DevC++ portano a questi "errori" e che la soluzione 
potrebbe essere utilizzare fflush ma da quel poco che ho trovato in rete non 
ho ben capito come utilizzarlo, potreste aiutarmi?
Per completezza del post inserisco anche il codice che utilizzo per 
"acquisire" la stringa
void Leggi(char *Carattere,int MaxChar)
{
    char Buffer[DIM], //buffer temporaneo
         c; //variabile char di appoggio
    int j = 0;
    c = getchar();
    do
    {
        Buffer[j] = c;
        j++;
        c = getchar();
    }while(c != '\n');
    if(j>30)
     Buffer[30] = '\0'; //nel caso in cui fosse inserita una stringa troppo 
lunga la tronchiamo con uno zero binario
    else
     Buffer[j] = '\0';
    strcpy(Carattere, Buffer); //copia del contenuto di buffer in carattere
}
Saluti
Gianluca 

while(c != '\n');
Prova con:
while(c != '\r');

 while(c != '\r');
cosě non funziona proprio... :-(
cmq mi pare di aver "capito" che il problema sta nella "non" pulizia dei 
Buffer...
Saluti
Gianluca 

 }
Se nel buffer è presente un newline è possibile che la stringa letta con
quel ciclo contenga un newline come primo carattere. Ma se, come dici,
quella che inserisci è la prima in assoluto non vedo da dove possa
arrivare quel '\n' spurio[1].
In ogni caso, per leggere una riga dallo stdin è più comodo usare
fgets():
char buf[MAX_SIZE];
char *p;
if (fgets(buf, MAX_SIZE, stdin) == NULL) {
        /* errore */
}
/* Tolgo il newline */
if ((p = strrchr(buf, '\n'))
        *p = '\0';
Luca
[1] Ok, ho una mezza idea sulla provenienza in caso di overflow, ma tu
non vuoi saperlo ;)
-- 
Sono un mirabile incrocio tra Tarzan e Giacomo Leopardi.
In me convivono tutte le doti intelluttuali di Tarzan e
tutta la prestanza fisica di Giacomo Leopardi.
A. Borsani

 non vuoi saperlo ;)
Chi ha detto che non voglio saperlo????
Cmq ora provo a fare quelle correzioni, grazie!
Saluti
Gianluca
Newsgroup: it.comp.lang.c
Titolo: valore di ritorno di wait

eseguendo il codice sottocitato ottengo (ordine delle linee permettendo)..
This is the child 9418
This is the child 9419
This is the child 9420
This is the child 9421
returned 9418 with value 512
returned 9419 with value 512
returned 9420 with value 512
returned 9421 with value 512
This is the child 9422
returned 9422 with value 512
This is the parent
domanda magari banale, ma perche' i valori di ritorno vengono stampati come
fossero moltiplicati per 256?
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
        int pid = 0, i = 0, ret = 0, cld = 0;
        for (i = 0; i < 5; i++){
                pid = fork(NULL);
                if(pid == 0){
                        sleep(1);
                        printf("This is the child %d\n", getpid(NULL));
                        exit(2);
                }
        }
        if (pid > 0)
        {
                for(; i > 0; i--){
                        cld = wait(&ret);
                        printf("returned %d with value %d\n", cld, ret);
                }
                printf("This is the parent\n");
                exit(0);
        }
}

[CUT]
dai un'occhiata a "man 2 wait":
If status is not NULL, wait or waitpid store status information in the
location pointed to by status. This status can be evaluated with the
following macros:
segue un elenco di macro da poter utilizzare tra cui spunta WEXITSTATUS
Ciao
Matic

 Matic
quindi e' corretto..
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/wait.h>
int main(void)
{
        int pid, i, ret, cld;
        pid = i = ret = cld = 0;
        for (i = 0; i < 5; i++){
                pid = fork();
                if(pid == 0){
                        sleep(1);
                        printf("This is the child %d\n", getpid());
                        exit(i);
                }
        }
        if (pid > 0)
        {
                for(; i > 0; i--){
                        cld = wait(&ret);
                        ret = WEXITSTATUS(ret);
                        printf("returned %d with value %d\n", cld, ret);
                }


Newsgroup: it.comp.lang.c
Titolo: Dove trovo sorgenti C?

OK dato che sulle chat è praticamente impossibile ricevere una risposta
seria ad una domanda volevo chiedere a voi!
Dove posso trovare un paio di sorgenti di programmini semplici C??
by SgRuNg

Dai un'occhiata a 
www.programmazione.it
 
www.programmersheaven.com
ciao ciao
Lawrence Oluyede
rhy...@tiscalinet.it
"Per cambiare, 
per diventare un' altra cosa
dobbiamo prima sapere cosa siamo"
Bruce Lee


Newsgroup: it.comp.lang.c
Titolo: INSEGNO IL C++ GRATUITAMENTE

-- 
Alessio Treglia
pagina Web
http://www.grisnet.it/utenti/treglia
sito FTP 
ftp://ftp.grisnet.it/utenti/treglia
ChatInfo
server: 
comicsrv3.microsoft.com
chat: #Treglia_Chat
e-mail
tre...@grisnet.it
atre...@freemail.it
al...@freemail.it
pro...@freemail.it

Ma se lo insegni gratis, ci spieghi come mai ogni 2-3 giorni posti tanti
messaggi tutti uguali?
Newsgroup: it.comp.lang.c
Titolo: Classi in C [Non sono diventato scemo...]

Esiste la possibilita` di scrivere un codice C++ contenente la dichiarazione
di alcune classi/struct ( e delle funzioni che le utilizzano pesantemente) per poi compilarlo
in C++ e fatto questo utilizzare le strutture del prog. C++ in un programma C (ovviamente
con delle restrizioni operative) ?
Se si vale la pena farlo per incrementare le prestazioni del programma?
In pratica: la perdita di prestazioni tra un codice C ed uno C++ giustifica il passaggio di
linguaggio? Se si, in quali casi e` piu` sentito questo calo?
-- 
Gargamella ->REMOVE *dinkyisland* from address to mail me!

 
Di un po', non ti conviene scrivere tutto in C++ e chiamare delle funzioni
esterne 
scritte in C?
Se hai problemi di Performance li risolvi con il C, poi dichiari le
funzioni in C cosi:
extern "C" {
	void FaiQuesto();
	void FaiQuello();
}
Inoltre non esiste :
extern "C++" { .....
Quindi non puoi fare quello che vuoi fare (... almeno nei limiti della
legalita')
Newsgroup: it.comp.lang.c
Titolo: Gli alberi di natale di Morpheus

Morpheus ha chiesto come stampare un
alberino di natale di asterischi
come
    *
   ***
  *****
*******
(visualizzare con un font non proporzionale,
come il Courier)
Ogni riga contiene un numero dispari di asterischi.
Se l'albero e' alto N righe,
ci saranno 1,3,5,...,2*N-1 asterischi per riga.
e saranno preceduti da  N-1, N-2, N-3, ...., 1, 0
spazi bianchi.
quindi per stamparlo (su un console che visualizzi i caratteri
in modo non proporzionale!) con una funzioncina tipo
void Albero(int n) {
   int i,j;
   for (i=1; i<=n; i++)
   {
    for (j=1; j<=n-i; j++) putchar(' ');
    for (j=1; j<=2*i-1; j++) putchar('*');
    putchar('\n');
   }
}
Esercizio: scrivere una versione di Albero che usi un solo ciclo e una
versione che non usi nessun ciclo.
ciao,
g.

 g.
Si ma come faccio ad impostare il carattere courier nella console ?
Io ho solo caratteri raster e Lucida console.
Ciao e grazie.
Morpheus

 Morpheus
Di solito nella console i caratteri sono gia' non proporzionali.
Prova a scrivere due righe, una sopra fatta da 10 lettere i o 10 virgole
e una sotto fatta da 10 lettere M: se le lettere rimangono allineate
allora il font va bene.
ciao,
g.

 g.
Naturalmente sono fatti solo a scopo ludico...
Ecco il primo, che funziona per alberi alti al massimo 15 linee:
void Alber(int n)
{
   int i;
   if (n<16)
   for (i=1; i<=n; i++)
    printf("%*s\n",n+i-1,
         "*****************************"+(30-2*i));
}
ed ecco il secondo, senza cicli, che funziona per alberi
alti al massimo 99 linee.
void Arbor(int v)
{
    int t=v-v%10000, n=v%100, z=v-t-n;
    if (t)
    {
      if ((z|n)==0) putchar('\n');
      else
      if (z==0){putchar('*'); Arbor(t+z+n-1);}
      else {putchar(' '); Arbor(t+z-100+n);}
    }
    else
    {
      if (n==1) Arbor(10001+z);
      else
      {
        Arbor(t+z+99+n);
        Arbor(9999+z+2*n);
      }
    }
}
ciao,
g.

 g.
Si sono perfettamente allineati, ma allora perchè l' albero mi appare storto
? :(
Grazie e scusa se rompo, ma vorrei cercare di capire qual'è il problema.
Ciao
Morpheus

       if (z==0){putchar('*'); Arbor(t+z+n-1);}
Giovanni, Giovanni, non barare ;-)...
prima dici "senza cicli" e poi me la fai ricorsiva ? :-)
Senza cicli è questa:
#include <stdio.h>
int main()
{
    printf("    *\n   ***\n  *****\n *******\n");
    return 0;
}
eh eh eh...
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it


Non lo so, prova per curiosita' a fargli stampare dei '.' invece
degli spazi, in modo da controllare che almeno in teoria sia giusto:
void Albero(int n) {
   int i,j;
   for (i=1; i<=n; i++)
   {
    for (j=1; j<=n-i; j++) putchar('.');
    for (j=1; j<=2*i-1; j++) putchar('*');
    putchar('\n');
   }
}
ciao,
g.

 eh eh eh...
Anch'io lo fatto con 10 printf, ma se lo facevo vedere al prof mi faceva un
cazziatone allucinante ;).
E

 g.
Cosě č perfetto, ho provato a sostituire '.' con ' ' e funziona
perfettamente.
GRAZIE MILLE Giovanni.
Newsgroup: it.comp.lang.c
Titolo: union

scusate ma io non ho mai capito cos'e' una union e come si usa... dove trovo
un aiuto ?

un aiuto ?
In termini semplici una union e' come una struct.
La differenza e' che dei dati definiti in una union viene allocato
solo quello con dimensione maggiore.
Esempio
 union {
         float a ;
         int   b ;
       };
viene allocato spazio solo per a e b punta alla stessa locazione.
modificando a si modifica b e viceversa.

 modificando a si modifica b e viceversa.
ho capito, ma che vantaggi ci sono a usare una union e non un cast ? che a
quando so' fa' praticamente la stessa cosa ?

...


quando so' fa' praticamente la stessa cosa ?
Il concetto di "cast" non c'entra nulla con le "union".
Una union puo' essere vista come una struttura che ti consente di
"vedere" un certo insieme di dati da piu' punti di vista.
Ad esempio :
Se io so che il mio compilatore utilizza lo standard IEEE 754 per la
gestione dei floating point (e' uno standard abbastanza diffuso),
posso definire una struct del tipo :
typedef unsigned char byte ;
typedef union {  float float_come_float ;
                 byte  float_come_byte[4] ;
              } float_vario ;
ed accedere al contenuto della struttura (che in totale non occupa 8
byte, ma solo 4) sia sotto forma di float normale (float_come_float)
che come byte singoli (float_come_byte[]).
In certi casi l'uso delle union risulta molto utile.
Newsgroup: it.comp.lang.c
Titolo: printf di numeri molto grossi...

Salve a tutti, 
spero che mi possiate aiutare a prendere un bel 9 in informatica... ;))
ho fatto questo programmino (scemo), ma che non vuole scrivere numeri
superiori ad un unsigned int (65k)...
che fare?? 
Ecco il programma:
#include <stdio.h>
float somma(float valoresomma);
main()
{
	float numerovalori;
	printf ("\n\rCalcolo della somma dei numeri naturali, scrivi la
quantita` di valori che vuoi sommare \(massimo 250, numero pari\): ");
	scanf ("%d", &numerovalori);
	printf ("\n\rIl numero di valori e` %d, la somma e`
%d",numerovalori,somma(numerovalori) );
}
float somma(float valoresomma)
{
	return valoresomma*(valoresomma/2)+(valoresomma/2);
}
Spero che qualcuno mi possa aiutare... 
byeZ.
Veleno.
|| __Gilberto "Veleno" Ficara__ ||   /    |
|| 
http://veleno.isCool.net
     ||  / __  |  __       __
|| ICQ UIN: 11891959            || / /__\ | /__\ |/| /  \
|| E-mail: vel...@nfmail.com___ ||/  \__  | \__  | | \__/

 che fare??
Il problema e' che leggi e stampi interi invece che float.
Ciao, Luca.
-- 
*******************************************************
       "Dio non e' morto.
        E' vivo e sta lavorando
        a un progetto
        meno ambizioso"
				    graffito anonimo
  Reply to 
bia...@maganet.net
*******************************************************

	return valoresomma*(valoresomma/2)+(valoresomma/2);
Come ti ho gia' spiegato prima, non conviene scrivere la formula in
questo modo, in quanto cosi' non sono supportati in modo corretto i
numeri dispari.
x * (x/2) + x/2  equivale a  x^2/2 + x/2 cioe' a x*(x+1)/2
Il programma corretto e' il seguente :
#include <stdio.h>
typedef unsigned long ULONG ;
ULONG somma ( unsigned n )
{
      return (ULONG) n * ( n + 1 ) / 2 ;
}
int main()
{
 	unsigned numero_valori ;
	printf ("\nCalcolo della somma dei numeri naturali\n\n");
	printf ("Numero di valori che vuoi sommare : ");
	scanf ("%u", &numero_valori);
	printf ("La somma dei primi %u numeri naturali e' %lu\n",
	       numero_valori, somma ( numero_valori ) ) ;
        return 0 ;
}

         scanf ("%d", &numerovalori);
Con %d viene letto un valore intero. Per i float devi utilizzare %f.
EMG

\nvirgola(massimo 250,numero pari,digita ctrl+V seguito da invio"
Perche' Ctrl+V ???

 Perche' Ctrl+V ???
Nulla,avevo inteso diversamente ed avevo fatto un programmino 
completamente diverso da quel che intendevaGilberto.
Cmq ctrl+V serviva ad interrompere l'aquisizione di dati da stdin.
Ciao.


ICQ #34602650

Il tipo %d è intero decimale. %f è float.
Occhio pero' che per scanf() vale la regola :
%f  per i float
%lf per i double
mentre per printf() 
%f sia per i float che per i double.
Newsgroup: it.comp.lang.c
Titolo: tipo incompatibile maaaaaa!

Salve a tutti,
il mio problema è questo:
typedef struct {
  char login[MAX];
  char password[MAX];
  char nome_pipe[MAX];                 // nome pipe dell'utente
} msg;
/* Questo è il nodo di una 
   lista concatenata
*/
struct nodo {
  msg info;
  struct nodo *punt;
};
/* l'utilità è ovvia...*/
struct nodo *crea_lista(void)
{
  struct nodo *lista = NULL;
  return lista;
}
/*
   Questa funzione si occupa
   dell' inserimento nella lista 
   concatenata di una nuovo nodo
   inizializzando i campi della
   struttura interna al nodo
*/
struct nodo *inserimento(struct nodo *p, msg user)
{
  struct nodo *p1 = p, *p2;
  p2 = (struct nodo*)malloc(sizeof(struct nodo)); /* alloco memoria */
  // le seguenti tre riga mi danno errore in compilazione:
  // tipo incopatibile nell'assegnamento
  p2->info.login = user.login;
  p2->info.password = user.password;
  p2->info.nome_pipe = user.nome_pipe;
  if(testvuota(p))
  {
    p2->punt = p;
    p = p2;
  }
  else
  {
    p2->punt = p1->punt;
    p1->punt = p2;
  }
  return p;
}
Qualcuno può aiutarmi? perchè si comporta così? Ringrazio tutti in anticipo

     *p = p2;
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

  p2->info.nome_pipe = user.nome_pipe;
Non puoi assegnare direttamente due array. Puoi:
- Usare strcpy (o strncpy) per copiare le singole stringhe:
 
  strcpy(p2->info.login, user->login);
  strcpy(p2->info.password, user->password);
  strcpy(p2->info.nome_pipe, user->nome_pipe);
- Usare memcpy. In questo potrebbe essere vantaggioso rispetto alle
  strcpy, visto che copi dei dati di dimensioni note a priori:
  memcpy(&p2->info, user);
Luca
-- 
Home: 
http://kronoz.cjb.net
"La donna ideale deve soddisfare l'anima, lo spirito, i sensi.
 Non trovando riuniti i tre requisiti nella stessa persona, è
 consentito il frazionamento." -- Alessandro Morandotti

 passare il suo indirizzo:
Ma c'e` la return:
struct nodo *inserimento(struct nodo *p, msg user)
{
[...]
  return p;
}
 
Se viene usata:
lista = inserimento(lista, elemento);
la funzione e` corretta.
Luca
-- 
Home: 
http://kronoz.cjb.net
"La donna è coinvolta sessualmente in tutti gli affari della vita. A
 volte perfino nell'amore." -- K. Kraus

 la funzione e` corretta.
Vero, sorry, ho letto di corsa ;-)


grazie ragazzi....provo subito se va

   p2->info.nome_pipe = user.nome_pipe;
Come ti hanno già detto, non puoi copiare un array con l'operatore "=". In
compenso, lo puoi fare con una struttura, quidi le tre righe sopra possono
ridursi a:
   p2->info = user;
--
Cingar



Per il resto segui le istruzioni di Kronos
 
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 codice "sicuro"
perché
	char * p = (char*) malloc(42);
è più "sicuro" che
	char * p = malloc(42);
???
-- 
Horst
Newsgroup: it.comp.lang.c
Titolo: Non riesco a SCRIVERE SUI FILE!!!!!!

Non riesco proprio a capire come scrivere e leggere qualcosa su un
file di testo. Ad esempio, se volessi inserire o salvare una struttura
del tipo:
typedef struct{
   char nome[20];
   char cognome [20];
   int eta;
}utente;
in un file di testo in modo che l'output a video sia:
 
Alessia Merz 25
   Rossella o'hara 99
   Penelope Cruz 25
come potrei fare?

...

Ho risolto.

Newsgroup: it.comp.lang.c
Titolo: /\/\ R S A

/\/\   RSA
#include <stdio.h>
static unsigned long int a[300];
/* public  key y= x**5 %299 
   private key x= y**53%299 */
/* rid()=(num**exp)%mod  */
unsigned rid(int num, int exp, int mod)
{int i;
 unsigned long int h=1;
 for(i=1; i<=exp;++i)
        h=(h*num)%mod;
 return h;
}
void inv_mod(void)
{int i;
 unsigned long int j;
 for(i=1; i<299; ++i)
    {j=rid(i, 5, 299);/*from y=x**5%299 
                       to x=y**53%299 */
     a[j]=i;
    }
}
int inv(int y)/*it's = y**53%299*/
{return a[y];}/*from y=x**5%299 
              to x=y**53%299 */
int main()
{int i;
 inv_mod();
 for(i=1;i<299;++i)
   {printf("inv(%d)=%d=%d=%d**53%299  ", i,
           inv(i), rid(i, 53, 299), i   );
    if(i%2==0) printf("\n");
   }
 return 0;
}
[cut]
inv(253)=184=184=253**53%299  inv(254)=24=24=254**53%299
inv(255)=190=190=255**53%299  inv(256)=133=133=256**53%299
inv(257)=82=82=257**53%299  inv(258)=241=241=258**53%299
inv(259)=246=246=259**53%299  inv(260)=130=130=260**53%299
inv(261)=170=170=261**53%299  inv(262)=71=71=262**53%299
inv(263)=204=204=263**53%299  inv(264)=88=88=264**53%299
inv(265)=96=96=265**53%299  inv(266)=210=210=266**53%299
inv(267)=297=297=267**53%299  inv(268)=60=60=268**53%299
inv(269)=146=146=269**53%299  inv(270)=30=30=270**53%299
inv(271)=150=150=271**53%299  inv(272)=194=194=272**53%299
inv(273)=143=143=273**53%299  inv(274)=40=40=274**53%299
inv(275)=45=45=275**53%299  inv(276)=230=230=276**53%299
inv(277)=231=231=277**53%299  inv(278)=213=213=278**53%299
inv(279)=41=41=279**53%299  inv(280)=128=128=280**53%299
inv(281)=34=34=281**53%299  inv(282)=16=16=282**53%299
inv(283)=199=199=283**53%299  inv(284)=124=124=284**53%299
inv(285)=25=25=285**53%299  inv(286)=273=273=286**53%299
inv(287)=157=157=287**53%299  inv(288)=188=188=288**53%299
inv(289)=256=256=289**53%299  inv(290)=205=205=290**53%299
inv(291)=83=83=291**53%299  inv(292)=54=54=292**53%299
inv(293)=76=76=293**53%299  inv(294)=242=242=294**53%299
inv(295)=263=263=295**53%299  inv(296)=212=212=296**53%299
inv(297)=293=293=297**53%299  inv(298)=298=298=298**53%299

   private key x= y**53%299 */
mi sono sbagliato, in questo modo non si può rompere (1024bit sono
troppi)
Newsgroup: it.comp.lang.c
Titolo: Scrivere su DB

Salve a tutti,
Premetto che sono anni che non uso piu' il C, mi trovo ora a dover
modificare un semplice programmino senza grafica (compilato da riga di
comando) che visualizza dei messaggi a video.
Devo fare in modo che questi messaggi vengano scritti su database SQLServer
al posto di essere visualizzati a video.
Dovrei utilizzare OLE DB.
Qualcuno mi saprebbe fornire qualche dritta sulle librerie da utilizzare?
(Utilizzo il compilatore C di microsoft)
Grazie anticipate
--
Toglere #NOSPAM# dall'indirizzo
Cut #NOSPAM# to replay

 ha
scritto: 

ti
cinverrebbe di utilizzare direttamente l'sql embedde ed il precompilatore
di sql server
--------------------------------
Inviato via 
http://usenet.iol.it
Newsgroup: it.comp.lang.c
Titolo: Aiuto (possibile errore vc++6.0 standard edition?)

Ho scritto il seguente codice sorgente:
#include <stdio.h>
main()
{
     int j;
menu:
     j == _flushall();
     printf("PROVA\n");
axt:
     j == _flushall();
     scanf("%d", &j);
     if (j == 7) goto menu;
     else
     {
      printf("\nIncorrect please 7");
      j == _flushall();
      goto axt;
     }
}
Il problema č che funziona, cioč riconosce qualsiasi tasti solo all'avvio, e
dopo il primo loop mi riconosce solo i caratteri decimali (dal 0 al 9
insomma).
In cosa stň sbagliando?
Grazie, ciao.
Daniel F.

 In cosa stò sbagliando?
Che %d e' usato solo per i numeri.
A parte che non si programma con goto ed etichette.... cambia stile per il
tuo bene.... ma poi prima di dire che e' un errore del compilatore pensaci
100 volte, e' molto piu' facile che sia tu a sbagliare e non il compilatore
(anche se puo' capitare).
Tommy

 Che %d e' usato solo per i numeri.
Cosa devo usare allora?

 Che %d e' usato solo per i numeri.
Come faccio a generare un errore nel caso di input sbagliato secondo te (nel
mio caso caratteri)? (sono alle prime armi). Grazie

 mio caso caratteri)? (sono alle prime armi). Grazie
Guarda questo codice ad esempio:
<CODE>
#include<stdio.h>
#include<ctype.h>
#include<stdlib.h>
int Valido(char *buff){
    int ret=1;
    int count=0;
    while((*buff)&&(*buff!='\n')){
        if((!isdigit(*buff))||(++count>5)){
            ret=0;
            break;
        }
        ++buff;
    }
    return ret;
}
int main()
{
    char buffer[256];
    int num;
    printf("Moltiplicazione per 2...\n");
    printf("Inserire numero pos di max 5 cifre:\n");
    fgets(buffer,256,stdin);
    while(!Valido(buffer)){
        printf("Invalido, inserire SOLO numeri e non piu' di 5 cifre!\n");
        fgets(buffer,256,stdin);
    }
    printf("Bravo, hai inserito: %s\n",buffer);
    printf("Converto l'input in numero.\n");
    num=atoi(buffer);
    printf("%d*2=%d",num,num*2);
    return 0;
}
</CODE>
Iniziamo da main():
Il programma ti chiede di inserire un numero intero positivo di massimo 5
cifre.
Il programma legge l'input in un buffer.
Poi c'e' un ciclo while che dice: fino a che il buffer non contiene un input
valido, stampa un messaggio di errore a video e richiedi l'input.
Poi, quando l'input e' valido, converte il buffer (stringa) in un numero con
atoi().
A questo punto num contiene un numero e possiamo trattarlo come tale e ad
esempio moltiplicarlo per 2.
Guardando la funzione valido:
int Valido(char *buff){
    int ret=1;
    int count=0;
    while((*buff)&&(*buff!='\n')){
        if((!isdigit(*buff))||(++count>5)){
            ret=0;
            break;
        }
        ++buff;
    }
    return ret;
}
Questa funzione ritorna 1 (valido) solo se fino alla fine della stringa, o
al primo \n, non incontra nessun carattere che non sia un numero e se la
lunghezza di tale "numero" non supera le 5 cifre.
Se le condizioni non vengono soddisfatte ritorna 0.
L'esempio non e' dei migliori, ma spero di esserti stato utile.
Tommy