mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c
Titolo: ALLEGRO e Menu

Salve, vorrei implementare una GUI, con le librerie grafiche ALLEGRO.....
Ho scaricato alcuni esempi ma non riesco a capire una cosa....
Ok....mi imposto la DIALOG iniziale...con tutti i bottoni....
Clicco un bottone..........e non riesco a fargli fare quello che dico io...
ad esempio....io vorrei....sempre dentro la GUI di ALLEGRO.......dopo aver
cliccato un bottone...
poter inserire una comunissima stringa in un'array .....ma non riesco
assolutamente a capire come si fa...
Ho letto che la GUI...lavora come se fosse dentro un loop...ma io come
faccio, quando clicco ad esempio il bottone inserisci, a far apparire una
casella dove inserire il testo da me desiderato?..
Se qualcuno fosse cosi' gentile da spiegarmelo gliene sarei molto
grato.......perche'.....tutti gli altri problemi...che devono
risolvere...sono piu' o meno legati......a questo......
In attesa di una vostra risposta, colgo questa mail per porgervi distinti
saluti.
euterpex

Con Allegrolo stdin e stdout non funzionano...ci sono funzioni
alternative...guarda la documentazione che trovi sul tuo Hd nella dir
c:\djgpp\allegro\docs
(se hai installato tutto nelle dir di default)
per maggiori info a riguardo.
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: Proposta argomento FAQ

Salve,
   vorrei proporre un argomento per la faq, riguarderebbe l'esecuzione di
programmi esterni.
La differenza tra exec e spawn, consigli vari...
Ciao
  Matteo
Ah, si'....volevo dire anche questo : questa e' una proposta di uno che ne
avrebbe bisogno di questa faq, non di uno che ne sa  ;)
--
Posted from [193.70.192.53]
via Mailgate.ORG Server - 
http://www.mailgate.org

 La differenza tra exec e spawn, consigli vari...
L'unico modo per far diventare una domanda una FAQ č di cominciare con
il porla. Intanto ponila in modo piů preciso e vediamo di rispondere.
EMG

Newsgroup: it.comp.lang.c
Titolo: real time multitasking

Ciao

dell' informatica di Milano ( hanno un sito internet ..chiedi in giro )
Dov'è la libreria dell'Informatica a Milano?
Io sono sempre andato alla Hoepli...
Ciao!

Al sito "
hartik.sssup.it
" si puo' trovare un kernel real-time
realizzato presso il nostro laboratorio dalle caratteristiche avanzate.
Il codice e' interamente open source quindi chiunque puo' guardarlo
utilizzandone cosa gli serve.
Ciao a tutti
-- 
 ("`-''-/").___..--''"`-._                  Luigi Palopoli
   `6_ 6  )   `-.  (     ).`-.__.`)          Phd Student
   (_Y_.)'  ._   )  `._ `. ``-..-'      Scuola Superiore S. Anna
 _..`--'_..-_/  /--'_.' ,'               Via Carducci 40 - 56100
(il),-''  (li),'  ((!.-'                    Pisa - Italy
                                   Tel. +39-50-883451 Fx +39-50-883452
					email: 
palo...@sssup.it

Newsgroup: it.comp.lang.c
Titolo: Applicazione DOS, capire cosa manda su una determinata porta...

 'The Krazy One'   ::--------
->  "To reign is worth ambition, though in hell."   |  UIN: 21267457  <-
-<  "Better to Reign in Hell Than Serve in Heaven"  | ircnet: krazy98 >-
---** Santa's elves are just a bunch of subordinate Clauses. **---

sulla porta di I/O della scheda radio?
Dipende da che linguaggio usa, se usa librerie ( e in quel caso se le hai) o
se scrive/legge direttamente agli indirizzi della scheda con inb e outb ( o
equivalenti nel linguaggio in cui e' scritto )
Sii piu' prolisso, e vediamo.
PS: Che scheda e'? hai davvero i sorgenti? Posta,Posta! :-)
Ciao.roberto
--
Save our planet!
Save wildlife;
For your E-MAIL use only recycled Bytes !!
roberto poggi  
rpo...@softhome.net

 'The Krazy One'   ::--------
->  "To reign is worth ambition, though in hell."   |  UIN: 21267457  <-
-<  "Better to Reign in Hell Than Serve in Heaven"  | ircnet: krazy98 >-
---** Useless Invention: Waterproof sponge. **---

e' fottuto :)
Mi sembrava strano che non riuscissi a capire cosa faceva avendo i sorgenti
in mano!
A questo punto, se ti va di usare il fioretto, puoi ingabbiarlo sotto un
qualche emulatore wine e tentare di scoprire che porte usa e quali comandi
manda, reverse engineering, insomma, ma nulla di agevole, purtroppo.

Newsgroup: it.comp.lang.c
Titolo: C beautyfier per win98

ciao
 cercavo, se esiste, una versione del famoso cb (c beautyfier)
 perche' sono stufo di aggiungere TAB a mano.
enrico

 wrote in message
3848058D...@fatti.com...

cerca il programma indent che fa anche di più.
Lo trovi anche a 
http://www.delorie.com/djgpp/
insieme ad un sacco di altre cose interessanti.

 perche' sono stufo di aggiungere TAB a mano.
perche' non costruirne uno per esercizio ? :)
--
Andrea Laforgia
andrea_...@bigfoot.com

 perche' non costruirne uno per esercizio ? :)
Ottima idea. Comunque, se è solo per l'indentazione, quasi tutti gli
editor appena decenti offrono una funzione di intentazione automatica.
EMG

editor appena decenti offrono una funzione di intentazione automatica.
Ho provato a creare un filtro molto semplice, ma non e' sufficiente.
Bisogna costruire un vero programma di analisi del sorgente.
In compenso, posso offrire un piccolo filtro che elimina
l'indentazione :
--- noindent.c --- inizio 
#include <stdio.h>
#include <ctype.h>
main()
{
    char s[100] ;
    int i ;
    while ( fgets( s, sizeof s, stdin ) )
    {
          for ( i = 0 ; s[i] != '\n' && isspace( s[i] ) ; i++ ) ;
          fputs( &s[i], stdout ) ;
    }
}
--- noindent.c --- fine 
--
Andrea Laforgia
andrea_...@bigfoot.com
Newsgroup: it.comp.lang.c
Titolo: Input-Output (Primi Passi)

Ciao,
sono nuovo sia del newsgroup che del C.
Sto cercando di realizzare una cosa del tipo:
Input di una stringa
Analisi di quanto inputato
Sostituzione di alcuni caratteri con altri
Output di quanto elaborato.
Il problema è il seguente, come posso fare in modo che le dimensioni (numero
di carattere) immessi non siano limitare dalla dimensione del vettore che le
conterrà?? Leggendo un manualetto ho visto che per forza di cose quando
dichiaro un vettore devo necessarimanete dichiararne anche la dimensione. Ma
partendo dal presupposto che io non so la lunghezza della stringa che
l'utente andrà a digitare non posso essere vincolato da una dimensione
fissa.
Pensavo a qualche soluzione orientata verso l'allocazione dinamica del
buffer...ma mi sto incasinando.
Spero di essere riuscito a spiegarmi.
Grazie in anticipo a tutti coloro che mi aiuteranno.
Carlo

Spero anch'io e spero di non dire &$"ŁŁ&/ :))
Personalmente io risolverei il problema con una semplicissima scanf.
Del resto tutte le stringhe sono in realtŕ vettori di caratteri ^^
Puoi semplicemente dichiarare una variabile e fare immettere l'input
all'utente assegnandolo alla tua variabile che (credo) si
dimensionerebbe in base al numero di char :)
Aspetta perň qualcuno di piů esperto per prendere quello che ho detto
per buono :)
Ciao :)
Nicholas.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 dimensionerebbe in base al numero di char :)
Magari!!!
In un modo o nell'altro devi sempre riservare memoria sulla quale scrivere
altrimenti avrai un comportamento imprevedibile del tuo programma. In
maniera semplice se pensi che la tua stringa sia al massimo di 80 caratteri
(cioé una riga della console) dichiari un array di char di 81 elementi.
Oppure per ogni carattere digitato (il che comporta che tu risolva in
qualche modo l'ostacolo della bufferizzazione) riallochi spazio per
contenere la nuova stringa (aggiungi in sostanza lo spazio per un char per
ogni digitazione!)


I'm not prejudiced, I hate everyone equally.

Avevo in effetti il sospetto di aver detto una porcata :D


Grazie a tutti per i suggerimenti,
faccio delle porve e vediamo che succede.
Carlo
"Antonio barbone" <bar...@raffaello.home> ha scritto nel messaggio
news:slrnab6boh...@barbone.bagnoli.home...

Newsgroup: it.comp.lang.c
Titolo: Funzione sconosciuta

Ciao a tutti.
Premetto che sono MOLTO inesperto con l'utilizzo di C.
Analizzando del codice scritto da altri, ho incontrato la funzione
"MmAbs". Di che cosa si tratta? Non riesco a trovarla in nessun
tutorial. La sintassi è la seguente:
var1 = MmAbs(Var2)
Qualcuno può aiutarmi per favore? Può trattarsi di una "routine"
definita in un'altra parte del codice?
Dove posso trovare un "help" che non sia un corso di C ma semplicemente
un elenco di tutti i comandi disponibili?
Grazie a chi sarà così gentile da rispondermi.
Caffemacchiato

 definita in un'altra parte del codice?
non mi risulta che sia una funzione standard.
Quasi sicuramente e' definita nel codice o in uno degli
header inclusi.
fai un grep dei file che hai sottomano e vai a vedere dove
e' definita...
ciao,
g.

 Dove posso trovare un "help" che non sia un corso di C ma semplicemente
Pare che sia una funzione per calcolare il valore assoluto di un numero:
http://en.wikipedia.org/wiki/Talk:Absolute_value

Ok, problema risolto.
Era definita in una parte di codice che non era in mio possesso.
Grazie!
Newsgroup: it.comp.lang.c
Titolo: non mi prende gethostbyaddr

 struct *hostent host;
         ^^^^^^^^^^^^^
struct hostent *host;
Ciao ciao,
Andrea
-- 
"...Unix, MS-DOS, and Windows NT (also known as the Good, the Bad, and 
 the Ugly)."
(by Matt Welsh)

ops, nella fretta ho sbagliato a scrivere , comunque nel programma l'ho
scritta giusta ma non mi funziona ancora, proprio non capisco ...
--
Shinji Ikari
E-Mail : 
neot...@tin.it
UIN: 32671593
"I'm the worst" - "The End of Evangelion"

Newsgroup: it.comp.lang.c
Titolo: "interpretare" codice

Qualcuno può aiutarmi a comprendere questa istruzione?. in particolare
mi rimane oscura la presenza delle parentesi quadre. Non capisco il
loro ruolo. Avrete capito che non sono un guru del C!!
(rules)[(num)*(_mainsys->attributes_num)+(attr)]
Gianluca



A parte che l'istruzione non è completa, ma così al volo la 
interpreterei come:
array[indice]  vale a dire (num)*(_mainsys->attributes_num)+(attr) 
elemento rell'array (rules).
Le parentesi () attorn alle variabili non sono necessarie, a meno che 
quella istruzione non faccia parte di una macro, come ad esempio:
#define ARRAY(rules,num,attr)  \
		(rules)[(num)*(_mainsys->attributes_num)+(attr)]
Ciao
Giovanni
-- 
   A computer is like an air conditioner,
   it stops working when you open Windows.
   Registered Linux user #337974  < 
http://giovanni.homelinux.net/
 >

attributes_num)+(attr)]
ai fini della funzionalità del codice mi conviene usare ElemOfRule ma
volevo capire cosa faceva la funzione. Con gli elementi che mi hai
dato ci ragiono un po su'
Grazie mille.


Ho ancora bisogno di aiuto! Sempre con il solito codice.
Grazie all'aiuto di Giovanni la precedente istruzione l'ho capita
bene. Ora ho qualcosa di simile ma che non riesco a capire bene:
fprintf(file,"a%d=%d  ", j, (rules+n*_mainsys->attributes_num)[j]);
di certo la base è un array con indice j (è inserito in  un ciclo for)
però il nome non riesco ad inquadrarlo. rules è un puntatore ad un
typedef di tipo int, n è un int, _mainsys è chiaramente una struttura
e attributes_num un valore numerico della struttura.
C'è qualcuno così gentile che può aiutarmi?
Grazie
Gianluca

 fprintf(file,"a%d=%d  ", j, (rules+n*_mainsys->attributes_num)[j]);
(rules+n*_mainsys->attributes_num)[j]
è equivalente a
rules[n*_mainsys->attributes_num + j];
E.


È simile alla precedente. Cioè accede all'array rules con indice 
n*_mainsys->attributes_num + j.
rules + n * _mainsys->attributes_num[j]
rules[n * _mainsys->attributes_num + j]
rules + n * _mainsys->attributes_num + j
sono statement equivalenti.  Quella forma che hai indicato è 
probabilmente stata scelta per meglio indicare che siamo all'interno 
di un for con indice j.



Grazie ancora della disponibilità.
Newsgroup: it.comp.lang.c
Titolo: ordinamento Bubble

ciao
perche' in questo esempio di ordinamento c'e' bisogno di un ciclo esterno?
Non basta un solo ciclo?
grazie!
#include <stdio.h>
#define SIZE 10
int main(void)
{
  int i,k;
  int arr[SIZE]={2,1,5,8,6,4,9,10,15,7};
  int scambio;
  //ordiniamo
  for (k=0;k<=SIZE-1;k++)
  {
  for(i=0;i<=SIZE-2;i++)
  {
     if (arr[i]>arr[i+1])
     {
     scambio=arr[i];
     arr[i]=arr[i+1];
     arr[i+1]=scambio;
     }
  }
  }
  //visualizziamo
  for(i=0;i<=SIZE-1;i++)
  {
      printf("\narr[%d] = %d\n",i,arr[i]);
  }
return 0;
}

 Non basta un solo ciclo?
No, e la domanda non c`entra molto con il C. L'algoritmo di bubble sort
funziona cosi`, con due iterazioni su tutti gli elementi annidate; la
teoria ci dice che ha complessita` O(n^2).
Un solo ciclo implicherebbe una complessita` temporale pari a O(n), che
non e` ottenibile. Al limite si puo` fare O(n * log(n)) con un qsort
(che pero` nel caso pessimo degenera in O(n^2)).
Luca
-- 
Home: 
http://kronoz.cjb.net
Se il  destino di un uomo  e` annegare, anneghera` anche  in un bicchier
d'acqua.
Proverbio yddish

Newsgroup: it.comp.lang.c
Titolo: compilatore per C ..quale usare?

come da oggetto.. sono alle prime armi con il C, quale programma mi
consigliate?
thanks!!

Io uso lcc-win32, free :)
Ce ne sono tanti pero, dal vecchio turboC, devc++ (pero diabilita le
classi), gcc, ...
Ne trovi molti anche sui siti universitari delle facolta di informatica

Newsgroup: it.comp.lang.c
Titolo: Modificare registry

Mi servirebbe un programmino (da lanciare dall'autoexec.bat o alla chiusura
di windows), che in modo del tutto trasparente all'utente cambi l'immagine
di sfondo del desktop mettendone una predeterminata (quell'infame di mio
fratello mi cambia sempre l'immagine di sfondo, allora vorrei fare un
programma che ad ogni riavvio mi rimetta come immagine di sfondo sempre
la stessa).
So che l'impostazioni dell'immagine di fondo e' memorizzata nel registry
sotto la voce HKEY_CURRENT_USER/Control Panel/Wallpaper ma non so quali
istruzioni usare all'interno di un programma per modificare il registry.
Qualcuno sa realizzarmi un programma del genere o sa darmi qualche dritta ?
P.S.:Gradite risposte tramite email (
dark...@tin.it
)
*eternamente grazie*

...



Per quello che ti interessa fare un programmino sarebbe eccessivo (anche se
non è da escludere).
Puoi invece crearti un file con estensione .reg contenente le seguenti
righe:
REGEDIT4
[HKEY_CURRENT_USER\Control Panel\desktop]
"Wallpaper"="Percorso_e_nome_dello_sfondo"
(ricordati di utilizzare il doppio slash nel percorso -> Es.
C:\\WINDOWS\\LUPO.BMP)
e poi mettere nell'autoexec.bat la riga:
regedit C:\ecc...ecc...\Miofile.reg
Questo dovrebbe funzionare ma non è la migliore delle cose da fare perchè ti
fa perdere del tempo inutile durante l'avvio.

*eternamente grazie*
Protresti attivare i profili utenti, creandoti un tuo utente con desktop
personalizzato.
Newsgroup: it.comp.lang.c
Titolo: AIUTO!

Salve a tutto il NG!!!!
Mi rivolgo a voi per un consiglio:
Vorrei sapere un buon manuale da trovare in rete, (o se nò un libro) per
imparare il visual c++ e, visto che nel NG del VISUAL BASIC  non mi hanno
nemmeno considerato, un altro manuale per il Visual Basic.
GRAZIE in anticipo per l'aiuto.
Simone

nemmeno considerato, un altro manuale per il Visual Basic.
Ciao Simone, non voglio darti l'idea di aggredirti, ma voglio farti
presente che messaggi come il tuo sono contro la "netiquette" (merce
rara e sconosciuta). Se hai bisogno di un consiglio sul visual basic,
devi rivolgerti ad un ng che tratti il visual basic e se li' non ti
senti considerato non ti aspettare che in un ng SUL C qualcuno ti
possa considerare ! In un ng nessuno e' obbligato a rispondere,
tuttavia lo stesso fatto di non ricevere risposta non significa
necessariamente una mancanza di considerazione. Puo' darsi che,
effettivamente, nessuno sia a conoscenza di un manuale sul linguaggio
e quindi nessuno ti risponda. Per quanto riguarda il Visual C++, ti
vorrei ricordare che esiste un ng sul C++ (it.comp.lang.c++) su cui
porre le domande relative allo standard del linguaggio C++ e un ng
sulla programmazione per Windows (it.comp.programmare.win32) in cui
porre domande relative agli ambienti di sviluppo per Windows.
La tua richiesta d'aiuto ha sicuramente attinenza con quest'ultimo
gruppo, poca o nessuna attinenza con it.comp.lang.c++ e assolutamente
nessuna attinenza con it.comp.lang.c.
Cerca inoltre, nei subject dei tuoi messaggi, di scrivere esattamente
che cosa stai cercando, in modo che persone non interessate alla loro
lettura (vedi me, in questa circostanza specifica) possano debitamente
ignorarlo, cosi' come persone intenzionate a risponderti sappiano gia'
se includerlo tra quelli interessanti.
Cerchiamo di rispettare le regole e vivremo tutti felici e contenti ;)
--
Andrea Laforgia
andrea_...@bigfoot.com

Vorrei ringraziarti per avermi fatto apprendere queste nozioni sui NG.
Non ti sto prendendo in giro, perchč č da poco che navigo e non ho molta
esperienza.
Non sapevo da dove iniziare e avendo letto di un NG del C ho chiesto a voi.
Grazie per l'aiuto.
P.S.: Qualcosa sul C lo conosco anch'io, se dovesse servire aiuto basta
chiamare.
A presto, Simone.

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

Salve a tutti
Sto studiando da un pò "linguaggio c seconda edizione" e sono arrivato più o
meno alla struttura dei programmi...
Volevo chiedervi, se c'è qualche sito da dove posso prendere degli esercizi
da svolgere (io reputo quelli presenti nel libro un pò troppo complicati...)
Grazie per l'attenzione!
Un saluto
--
----------------------------------------------
ICQ NUMBER: 147421455
http://www.posieidon.3000.it
http://posieidon.supereva.it



-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG
Newsgroup: it.comp.lang.c
Titolo: un aiuto

1) Write a statement which will output the value of the integer variable N
to the file referenced by the file pointer outfile. Assume the file has
already been opened for output.
2. During file processing, a file is referenced via what type of variable?
    1. a file handle (type int)
    2. a file pointer (type FILE *)
    3. the file name (type char [ ])
    4. a pointer to the file name (typechar *)
grazie

    2. a file pointer (type FILE *)

Newsgroup: it.comp.lang.c
Titolo: regole di precedenza

if (nX-- > 0)
fa prima il nX-- o il controllo se č positivo?
grazie
michele



nX-- significa usa il valore di nX prima, e poi decrementalo
--nX significa decrementa il valore, e poi usalo
(stessa cosa per ++nX e nX++ )
quindi nel tuo caso prima controlla se nX č maggiore di 0, dopodiché lo
decrementa di uno
Ciao
Matic
Newsgroup: it.comp.lang.c
Titolo: due domande su fclose

Ho scritto qualche programmino dimenticandomi di chiudere i file con
fclose prima di return 0, ma comunque funziona tutto. Presumo quindi che
in questi casi lo svuotamento dello stream e la chiusura del file sia
effettuata dal sistema operativo; ma allora è davvero obbligatorio
chiudere il file con fclose?
E inoltre, dato che su fopen bisogna fare il test (!=NULL) per verificare
che il file sia stato aperto con successo, su fclose bisogna fare il test
(==0 oopure !=EOF) per verificare che sia stato chiuso con successo??
Dario
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it


in genere non è necessario fare alcun tipo di controllo, a meno di
particolari esigenze;
in genere una operazione di close ritorna un errore se il file a cui si fa
riferimento non è mai stato aperto, oppure se magari è già stato chiuso (e
in tal caso andrebbe rivista la logica del programma); non credo che il
flushing di informazioni verso il disco rigido possa generare un qualche
errore (a meno di errori a basso livello delle primitive di scrittura);

 particolari esigenze;
Vero anche questo, ma la gamma di  errori e` molto vasta: errore di I/O,
spazio esaurito,  operazione interrotta,  scrittura oltre  la dimensione
massima del file, fd invalido...
Se si  vuole la certezza  che il salvataggio sia  andato a buon  fine si
dorvrebbe controllare il valore di ritorno ed agire in caso di errore.
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
This message will self distruct in 5 seconds.
Newsgroup: it.comp.lang.c
Titolo: Fread e matrice di strutture...

Ciao a tutti...devo leggere con fread (e poi scrivere con fwrite ) su file
una matrice di strutture definita come:
# define MAX2 100
# define MAX3 100
......
typedef struct e{
     int dato1;
     int dato2;
     int dato3;
     int dato4;}dato;
....
dato matr[MAX2][MAX3];
qual è la sintassi esatta che devo utilizzare con fread?
Grazie 1000!
Enrico S.
--
Webmaster della Pagina NON Ufficiale del SonyCRX100
SonyCRX120,  SonyCRX140E/S, SonyCRX100EX, HP8100
HP8200, HP9100 & HP9200
http://www.freeweb.org/computer/SonyCRX100/

 wrote in message
news:9m376c$k09$1...@pegasus.tiscalinet.it...


 wrote in message
h3ah7.6048$i81.2...@news.infostrada.it...


elementi di tipo dato...che può essere?
Prova a leggere il file con un editor che gestisca file binari,
controlla la lunghezza del file, i normali editor al primo carattere
che non digeriscono interrompono la lettura del file.
ciao, acc.   
a...@libero.it

 wrote in message
news:9m3ii4$oum$1...@lacerta.tiscalinet.it...



Sai com'č...č una questione di abitudine...ne terrň conto, grazie...e grazie
anche per l'aiuto!


 wrote in message
news:9md5t3$mo$1...@lacerta.tiscalinet.it...


Allora...per i sorgenti...ci sono dei problemi perchè sono 6 pagine di
listato e se li posto rischio di essere linciato ^_^...compilatore DJGPP con
gcc 2.95.3 sistema operativo Windows (in prompt di MS-DOS) e librerie
Allegro...
Grazie per  l'aiuto
Enrico


 wrote in message
news:9me37a$bor$1...@lacerta.tiscalinet.it...


cosi si puo' dedurre meglio cosa succede!
Per favore, quando rispondi scrivi il tuo testo *sotto* al messaggio
originale, del quale mantieni *solo le righe necessarie* alla
comprensione del dialogo.
Grazie!
-- 
Saluti,
    Mardy
http://www.interlingua.com

 comprensione del dialogo.
A patto che tu cambi la riga del Subject in [OT] quando e OT... JM2C
Newsgroup: it.comp.lang.c
Titolo: Aiuto nn riesco a fare questo esercizio

Salve potete aiutami a fare questo eserczio: Scrivere un programma che
controlli se una stringa immessa dall'utente è palindroma(Una stringa si
dice palindroma se si legge nello stesso modo da sinistra verso destra e da
destra verso sinistra. ANNA, radar


wrote:

In cosa consiste la tua difficoltà?

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

 wrote:

int palindroma(const char *s)
{
    int a, b, len = strlen(s), m = len / 2;
    for (a = 0, b = len-1; a <= m; a++, b--)
    {
        if (s[a] != s[b])
           return 0;
    }
    return 1;
}
-- 
Andrea Laforgia (
walkie...@libero.it
)
"Usenet is a strange place" [Dennis Ritchie]

 controlli se una stringa immessa dall'utente e` palindroma
Scandisci la  stringa utilizzando  due indici  diversi: uno  parte dalla
testa, l'altro dalla  coda. Finche` il primo e`  strettamente minore del
secondo  confronti i  due caratteri. Appena  un confronto  fallisce esci
perche` la stringa non e` palindroma.
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
Non ho ancora capito se il mio cane e` maschio o femmina:
quando fa la pipi` si chiude in bagno

 }
Non c'è bisogno di trovare il "punto medio" della stringa.
int palindroma(const char *s)
{
     int a, b;
     for (a = 0, b = strlen(s)-1; a < b; a++, b--)
     {
         if (s[a] != s[b])
            return 0;
     }
     return 1;
}
-- 
"Everything is vague to a degree you do not realize till you have tried
  to make it precise"
"Ogni cosa è vaga in una misura di cui non ci si rende conto finché non
  si cerca di renderla precisa"
                                       Bertrand Russell
                                       The Philosophy of Logical Atomism
Newsgroup: it.comp.lang.c
Titolo: esistenza del file

Scusate se č una domanda stupida, ma come faccio a verificare l'esistenza di
un file? Non riesco a trovare niente...

 
prova ad aprirlo con fopen("file","r"). Se fallisce il file non esiste!
R.D.

 prova ad aprirlo con fopen("file","r"). Se fallisce il file non esiste!
Consiglierei anche di vedere la variabile *errno* altrimenti non hai modo di
sapere se fopen ha fallito perche' il file non esiste oppure perche' non
riesce ad accederci per questioni di permessi o altro.
Ciao.
-- 
~~~~Slaine Mc Roth~~~~
**Linux User# 312607**
Con la concordia le piccole cose crescono, mentre nella discordia le piu'
grandi
vanno in rovina.  (Sallustio)

ho trovato la soluzione:
if(access(nome_file,0)==0)
    //il file esiste


access e' POSIX, il metodo di fopen + check di errno e' invece ANSI, 
quindi riterrei migliore la soluzione che ti hanno gia' dato.
Inoltre, e' molto brutto usare costanti numeriche, quando lo standard ti 
da costanti simboliche: se proprio vuoi usare access, allora:
if(access(nome_file, F_OK) == 0)
   /* il file esiste */
Notare anche che i commenti '//' sono solo supportati dagli standard 
ANSI recenti :)
-- 
Mat/tia Belletti - Undergraduate student @ 
cs.unibo.it
ICQ: 33292311    - email: 
mbel...@cs.unibo.it
IRC: RedGlow     - site(s): 
http://mbellett.web.cs.unibo.it/
Jabber: RedGlow  - Linux registered user 299762 @ machine 213003
Newsgroup: it.comp.lang.c
Titolo: Consigliatemi qualche libro

Ciao a tutti,
è probabile che a breve venga affiancato ad un team di sviluppo che 
lavora in C (su un progetto ancora da definire con precisione).
Io conosco il C in maniera "accademica", nel senso che non l'ho mai 
usato per un progetto *vero*. Volevo chiedervi allora qualche 
riferimento a qualche libro che affronti problematiche relative alla 
programmazione in C ma non dal punto di vista del linguaggio in sè... 
insomma, non sto parlando del KR, ma di qualche manuale che parli di 
cosa si va incontro quando si programma in C (e magari dia anche 
qualchhe indicazione per il design e la progettazione del software).
Ciao e grazie in anticipo,
Giulio
-- 
OnAir:
http://www.giuliopetrucci.it
http://www.fujikomonamour.com


C Interfaces and Implementations: Techniques for Creating Reusable
Software
by David R. Hanson - Princeton University
Publisher: Addison Wesley Professional
Pub Date: August 20, 1996
Print ISBN-10: 0-201-49841-3
Print ISBN-13: 978-0-201-49841-7
eText ISBN-10: 0-321-56280-1
eText ISBN-13: 978-0-321-56280-7
Pages: 544

qualchhe indicazione per il design e la progettazione del software).
Allora non credo che tu stia cercando un libro sul C.
Il campo è talmente vasto e vario che non ti si può consigliare un
libro specifico.

On 5 Jul, 15:41, Andrea Laforgia

Il libro indicato da me sopra e' un buon inizio.

Il libro indicato da me sopra e' un buon inizio.
Non lo conosco, ma vedo che è stato pubblicato 12 anni fa, il che per
me è un punto a sfavore. Difetterà sicuramente di molte tecniche
spuntate nell'ultimo decennio. Certo, se ci si ostina a programmare in
C probabilmente i vecchi concetti vanno ancora bene, però a mio avviso
dei libri come la serie in 4 volumi "Pattern-Oriented Software
Architecture" vanno meglio, prescindendo dal linguaggio, per chi vuol
apprendere concetti pratici di progettazione del software.



C corso completo di programmazione, 3a Edizione.
di Hm Deitel e P. Deitel
Editore Apogeo
ISBN: 9788850326334
http://www.apogeonline.com/libri/9788850326334/scheda
http://www.lafeltrinelli.it/products/9788850326334.html

 qualchhe indicazione per il design e la progettazione del software).
[...]
A parer mio puoi acquistare 'Programmazione nella pratica' di Kernighan
and Pike, "The Practice of Programming"; e' un viaggio nella
programmazione 'vera', peraltro con riferimenti a java e c++, ma
naturalmente il C la fa da padrone.
Ti consiglia come lavorare, dalla variabile alla libreria,
dal debug al testing; il testo e' davvero interessante e sicuramente
ti puo' dare lo spunto per futuri lavori, come ad eempio
l'implementazione di un'interfaccia, peraltro spiegata magistralmente e
implementata in C.
Non credo che Kernighan ne' tantomeno Pike hanno bisogno di
presentazioni.

 Software
[cut]
Grazie mille per il consiglio.
Ciao,


 apprendere concetti pratici di progettazione del software.
Grazie mille per il consiglio!
Ciao,


 naturalmente il C la fa da padrone.
[cut]
Sembra molto interessante...
Grazie mille per il consiglio!
Ciao,

Newsgroup: it.comp.lang.c
Titolo: Iniziare col C

scusate sono un (quasi) niubbo...
ho basi di programmazione generica e ho fatto anche qualcosa di C, ma mi 
servirebbe una bella guida per imparare ad usare il liguaggio in maniera 
veramente "cazzuta" (ovviamente poi servirà la pratica)...
isomma se esiste una bella "bibbia del C" (magari in italiano), me la 
sapreste consigliare?
grazie 



Credo che questa sia la domanda piu postata in assoluto; ed è una
sfortuna che sia probabilmente la prima domanda che si fa in questo ng.
Dico sfortuna perché lurkando un minimo ci si renderebbe conto di quanto
google aiuti sulle domande frequenti. Senza iniziare un altro thread con
le solite risposte, controlla qui:
http://groups.google.it/groups?hl=it&lr=&q=libro+OR+giuda+OR+iniziare&btnG=Cerca&meta=group%3Dit.comp.lang.c
Ciao

 sapreste consigliare?
Il K&R.
-- 
RiK0
[ non credo negli schemi non vincenti ]
[     two is an odd prime number.     ]

Newsgroup: it.comp.lang.c
Titolo: Come fare se un programma è troppo grande?

Se il programma scritto in TurboC non entra in memoria convenzionale, qual'č
la procedura esatta per suddividerlo in piů moduli?
-- 
Posted from 
htt06-acc.tin.it
 [212.216.176.133] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

la procedura esatta per suddividerlo in più moduli?
Se hai gia usato il modello di memoria huge l'unica cosa che ti resta
da fare e' o usare gli overlay oppure ricorrere a un gestore di
memoria estesa .
In entrambi i casi le cose non sono semplici ,anzi .
Forse meglio se cambi compilatore e ne usi uno a 32 bit .
ciao
Newsgroup: it.comp.lang.c
Titolo: Creare directory

Salve a tutti
avrei necessità di far creare ad un programma che ho creato delle cartelle
in cui andare ad inserire i file che questo programma mi crea.
è possibile farlo in c ?
ufff forse sto dislessico....
io ho creato un exe
questo exe legge un file txt e sputa fuori un .bin, un.cin e un .din
io vorrei che :
alla 1° esecuzione creasse 3 cartelle contenenti ognuna il rispettivo file
creato (e quindi una cartella per i bin una per i cin e una per i din)
alle successive esecuzioni lasci i file che stanno e ne crei degli altri
sempre nelle stesse cartelle.
idem vorrei fare per un altro prog che legge questi file...
riesco a farli scrivere e leggere se sono nella stessa cartella (ovviamente)
ma non in cartelle diverse.
qualcuno mi può aiutare ?
grazie in anticipo
p.s.uso microsoft visual c++ express edition
-- 
Ma tu l'hai visto il mio blog ???
http://alfaking.blogspot.com
Skype: Alfaking8
MSN: 
alfa...@hotmail.com
ICQ #145025749

 è possibile farlo in c ?
Il C standard non prevede la possibilita' di creare directory (sigh),
ma VC++ mette a disposizione
int _mkdir(const char*)
prova a drrci un'occhiata.
HTH
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 int _mkdir(const char*)
e invece, la possibilità di leggere/scrivere da un path definito c'è ?
in questo modo potrei creare io la cartella e poi i file verrebbero 
automaticamente creati lì... 

 automaticamente creati lì...
_mkdir("nomeDirectoryDiMioGradimento");
fP = fopen("nomeDirectoryDiMioGradimento/nomeFile", "w+");
oppure 
_mkdir("nomeDirectoryDiMioGradimento");
_chdir("nomeDirectoryDiMioGradimento");
fP = fopen("nomeFile", "w+");


 oppure
fP = fopen(, mkdir("nomeDirectoryDiMioGradimento");"w+");
Ciao

 fP = fopen(, mkdir("nomeDirectoryDiMioGradimento");"w+");
A parte la virgola iniziale e il ';' alla fine di mkdir(),
la chimata non funziona perche' il valore di ritorno di
mkdir() e' un int, mentre fopen come primo parametro prende
un const char*.

Newsgroup: it.comp.lang.c
Titolo: voglio imparare

Sto' cercando due cose:
1) Una guida sul C che sia possibile scaricare direttamente da Internet.
2) Un compilatore shareware o freeware.
Il problema e' che vorrei imparare il C ma non posso spendere soldi, per un
libro e un compilatore (il che e' gią' una bella cifra per uno studente
squattrinato) senza prima "assaggiare".

2) Un compilatore shareware o freeware.
Ti rispondo per la 2) :
scarica il DJGPP.
------
Andrea
------

2) Un compilatore shareware o freeware.
un ottimo compilatore free e` il DJGPP, non e` molto facile da
utilizzare, ma lo puoi configurare come vuoi e genera codice molto
veloce (lo hanno usato anche per fare quake)
lo trovi a 
ftp://ftp.flashnet.it/pub/simtelnet/gnu/djgpp
spero l'indirizzo sia giusto, perche` ho scritto a memoria 8)
Buon 1998
[ranger, email: 
ran...@queen.it
]


Ti conviene comprare il libro costa meno che scaricarlo e stamparlo, presso
qualche universitą (informatica o ingegneria) forse lo trovi anche tra gli
annunci in bacheca.
Se devi acquistarlo ti consiglio "La grande guidaC" della McGraw Hill costa
circa 70000 ma li vale.

 squattrinato) senza prima "assaggiare".
Suggerimento, perche` no installi Linux? Comprende i compilatori per tutti
i linguaggi che potresti mia desiderare, non si pianta mai, hai a 
disposizione i codici sorgente di tutte le applicazioni e del kernel...
tutto e` rigorosamente gratis.... ogni tanto regalano il CD insieme
a qualche rivista perche` scaricare centinaia di Mb dalla rete non e`
salutare :-(
E` l'ideale per imparare, sempre che tu abbia l'anima dello smanettone. ;)
Ciao!
-- 
+---------| Linux: The choice of a GNU generation! |---------+
|  Franco Sarli -- 
http://www.geocities.com/HotSprings/5058
  |
|   E-mail: 
sp00304...@it.net
     FidoNet: 2:334/708.5   |
+--| Pgp key available, mail me with subject: get_pgp_key |--+                                   FOR MAIL ME REMOVE "+nospam"


Pienamente d'accordo!
Anche io ho usato vari `porting`
del GNU C++ per Win32, e ti
posso dire che danno tanti di
quei problemi.
Procurati quindi un bellissimo
Linux (su Ioprogrammo di questo
mese c'e' la Slakware 3.4 e
su Inter.net la Debian 1.3
in italiano), installalo,
se non vuoi ri-partizionare,
con il filesystem UMSDOS
e _sopratutto_ ricordati
di installare l'editor JED,
che cambia il colore 
del testo in funzione
della sintassi C/C++!!!!
(in Win 95 non so' se
ci sia qualcosa del genere "free"...)
Basta che lo chiami con la sintassi:
jed nomefile.c
oppure
jed nomefile.cpp
Ti scrivi il programmino
e poi dalla shell lanci gcc 
esempio:
gcc nomefile.c
Buon divertimento!
Matisse
Newsgroup: it.comp.lang.c
Titolo: Cmpilatore C/C++ su dischetto

Scusate, volevo sapere se qualcuno conosce se esiste o si può mettere un
compilatore per windows su un dischetto in modo da portarselo sempre dietro.
Grazie $Ale$

 compilatore per windows su un dischetto in modo da portarselo sempre dietro.
Sarebbe bello ma temo sia impossibile sia perché normalmente i programmi
per Windows (e quindi anche i compilatori) necessitano di installazione
(ma non è proprio indispensabile) e sia perché sono genericamente molto
grossi e non entrano in un dischetto.
EMG

Sarebbe bello ma temo sia impossibile sia perché normalmente i programmi
e per Dos ?

 e per Dos ?
Si. Ad esempio, il Turbo C++ 1.01 entra perfettamente in un dischetto
(compilatore, linker, includes e librerie).
EMG

 (compilatore, linker, includes e librerie).
č čpossibile trovarlo per la rete gratis?

Newsgroup: it.comp.lang.c
Titolo: aiuto con compilatore Lcc

salve a tutti,
Lcc-win32 ha smesso di funzionare, nel senso che compila il programma, mi da
l'esecutivo ma nella schermata dos non mi permette di fare niente, esce
scritto "retun code -1" e questo senza che io abbia fatto nulla di
particolare. L'ho disinstallato, reinstallato ma niente...vi risulta che sia
gia' successo?
vi ringrazio anticipatamente
Giuseppe

 ha scritto nel messaggio news:8HP68.5833$nI1.1...@twister1.libero.it...

Ciao,
uso LCC e non mi è mai successo una cosa simile,
prova a fare una cosa, NON disinstallare, cancella
a mano tutte le directory e le sottodirectory di LCC
e REINSTALLA il software LCC,
ripeto, non disinstallare LCC con il programma di disintallazione,
e rimuovi a mano tutti i file di LCC
(se vuoi, conserva i file che ti interessano in un ALTRA directory)
Prova e fammi sapere!!! (è una cosa brutta da fare, lo so,
ma a mali estremi, estremi rimedi.....)
Ciao
Davide

Forse hai installato qualcosa dopo LCC
che lo ha mandato in tilt.
Ciao

Newsgroup: it.comp.lang.c
Titolo: Esercizi di C

Salve,
sono uno studente di ingegneria elettronica. E poichè fra un pò ho esami
vorrei sapere:
Conoscete siti in cui vengono pubblicati compiti in classe o test
riguardo al linguaggio C, con relativa risoluzione?
Dove posso trovare programmi già compilati in C che fanno vedere anke il
codice sorgente in modo da capire come sono stati creati?
Vi ringrazio per la risposta! A presto!
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 ha scritto nel messaggio
news:9c138bfee47800d589c...@mygate.mailgate.org...

Newsgroup: it.comp.lang.c
Titolo: "INT to STRING"

Salve amici,
    sono ancora alle prime armi con la programmazione e sto studiando il C
ma devo fare un progettino in cui mi servirebbe un modo o una funzione della
libreria standard del C per convertire un numero in una stringa;
    se mi potreste aiutare vi sarei gratitissimo!!!
Fabio

 si avvicino` a me, e solennemente disse: 

#include <string.h>
#include <math.h>
...
	double n;	// il numero che vuoi convertire
	char *string;	// la stringa dove vuoi che venga scritto il numero
	string=malloc((int)(ceil(log10(n)/log10(2))));
	sprintf(string,"%d",(int)n);
...
/* dovrebbe funzionare, non l'ho testato e l'ho scritto "a naso", quindi potrei
 * ricordare male il metodo per avere il numero di cifre di un numero */
Adieu,
-- 
Lestat de Lioncourt  -- a.k.a --  Ciro Mattia Gonano
 Undergraduate student in Computer Science at University of Bologna
 IHGGer #1049   <=>  ICQ#: 52631406   <=>   URL: 
http://www.CS.UniBO.It/~gonano
 Debian admin at 
Students.CS.UniBO.It
 <=> look at headers for my JabberID & GPG

 	string=malloc((int)(ceil(log10(n)/log10(2))));
				^^^^^^^^^^^^^^^^^^
				questa era se il numero e` in binario, per il
				numero in decimale dovrebbe funzionare questa:
					ceil(log10(n))


 	sprintf(string,"%d",(int)n);
Di la verita': quando hai scritto questo codice stavi fumando strane
sigarette arrotolate a mano :-)
2^64 = 18'446'744'073'709'551'616 (20 caratteri in totale)
Non ti sembra che
char cnvBuff[20];
sprintf(cnvBuff, "%d", n);
sia sufficiente a memorizzare qualsiasi intero per i prossimi 5-6 anni,
senza troppo spreco di memoria senza rischi di overflow (e senza
terrorizzare OP)? :-)
C:\>iao Angelo
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it
Newsgroup: it.comp.lang.c
Titolo: funzioni

è corretto dichiarare questo tipo di funzioni?
es.
int funzione()
void funzione()
oppure è meglio scrivere
int funzione(void)
void funzione(void)
le due scritture si equivalgono? La seconda è più corretta della prima....?
grazie
byez
B@STI

 ha scritto nel messaggio
news:zURu8.19398$b62.5...@news1.tin.it...

Sono la stessa cosa, forse la seconda è più leggibile, ma a me in genere fa
fatica scrivere un void in più, quindi lo ometto ;-p
Ciao,
Cecco

 genere fa fatica scrivere un void in piu`, quindi lo ometto ;-p
Sono due  cose diverse. I primi  due esempi non  sono dei veri  e propri
prototipi. Lo  standard definsce  le funzioni  senza lista  di parametri
(non prototype-format  parameter type declarators) obsolete  e mantenute
per compatibilita`. In questo caso si forza il compilatore ad abolire il
type checking sui parametri passati. Nel mio codice posso scrivere:
void foo();
int main() {
	foo(123);
	foo("bar");
}
ed il compilatore  non avra` nulla da  ridire. Esiste pero` un'eccezione
(nel  C99): se  la dichiarazione  fa parte  della definizione  allora il
compilatore assumera` che la  funzione non accetta alcun parametro. Nota
pero` che pochissimi compilatori sono conformi al C99 (ad es, il gcc non
si  comporta correttamente  neppure  con -std=c99),  quindi non  contare
troppo su questo comportamento.
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
Il coraggio non mi manca.
E` la paura che mi frega...

 ha scritto nel messaggio
news:a9hdto$36r$1...@dreamland.darkstar.net...

Questo non lo sapevo, grazie ;-)
Ciao,
Cecco

quindi? devo usare void funzione (void)!?!
thx
byez
B@STI

Newsgroup: it.comp.lang.c
Titolo: Funzione ricorsiva x moltiplicazione

Ciao a tutti,
devo realizzare una moltiplicazione tra due numeri naturali attraverso
una funzione ricorsiva che utilizza come unici operatori aritmetici
quelli di incremento o decremento unitario (nessun altro operatore è
utilizzabile).Potete aiutarmi?Qual'è il codice per una funzione
corretta?Grazie mille ciao
PS:la funzione ricorsiva può utilizzare altre funzioni ricorsive (ad es.
addizione e sottrazione già realizzate) sottoposte anche loro
all'utilizzo dei soli operatori aritmetici di incremento di una unità e
decremento di una unità (+1 e -1)
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG


Ecco il tuo codice:
int mul(int a, int b)
{
	if (a == 1)
	   return (b);
	return (b + mul(a - 1, b));
}
int main(void)
{
	printf("\nMoltiplica: %d", mul(1, 3));
	getchar();
	return (0);
}
--------------------------------
Inviato via 
http://usenet.libero.it

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

Mi sapreste consigliare un'IDE semplice semplice per muovere i primi passi
in C ?
Grazie

 escribió en el mensaje
news:3Gkv9.89412$RO.22...@twister1.libero.it...



prova DEV
www.bloodshed.net
Newsgroup: it.comp.lang.c
Titolo: File Manager sotto UNIX

Ciao a tutti,devo scrivere una specie di File Manager in C sotto Unix.
Vorrei sapere se qualcuno sa indicarmi che documentazione consultare per:
1) chiamare dei comandi della shell UNIX (tipo "ls","gzip",...) all'interno
di un programma C
2) la gestione del File System (memorizzare l'elenco dei files in una
directory...)
2) fare una "spartana" interfaccia grafica (tipo le vecchie shell grafice
DOS, per evidenziare/selezionare files, etc)
Non so proprio dove andare a cercare,nei manuali che ho consultato non c'era
nulla di tutto ciň!
Grazie a tutti anticipatamente,
 Marco
--
per rispondere togliere NOSPAM
NOSPA...@tiscalinet.it

 DOS, per evidenziare/selezionare files, etc)
ncurses(3ncurses), slang (documentazione in slang-dev).
Bye,
 Emmanuele.
-- 
Emmanuele Bassi         |             [ 
http://digilander.iol.it/ebassi/
 ]
emmanue...@iol.it
  |
GnuPG Key fingerprint = 4DD0 C90D 4070 F071 5738  08BD 8ECC DB8F A432 0FF4

 DOS, per evidenziare/selezionare files, etc)
(n)curses
P.S. Qui sarebbe OT...
-- 
 Ciao, Bianco.
 Reply to luca.bianco (at) 
tiscalinet.it
Newsgroup: it.comp.lang.c
Titolo: Dubbio su feof()

Di nuovo ciao,
scusate tutte queste domande, ma ho un esame che si avvicina :).
Mi chiedevo se aveste la pazienza di spiegarmi una cosa riguardo feof() che 
credo di aver capito solo a metà.
Se scrivo una cosa del tipo:
***
[...]
    if(input=fopen(nomefile,"r"))
    {
        esito=EXIT_SUCCESS;
        while(!feof(input))            // <== il feof() incriminato :)
        {
            fscanf(input, "%s", str);
            [...]
        }
[...]
***
entro nel while una volta in più di quel che avevo previsto inizialmente. 
Questo perché, se ho ben capito, feof() restituisce un valore != 0 solo se 
una lettura è *già* fallita, al contrario del Pascal. E' corretto?
Ho pensato che una possibile alternativa sarebbe, al posto di feof(), 
qualcosa del tipo:
***
[...]
    if(input=fopen(nomefile,"r"))
    {
        esito=EXIT_SUCCESS;
        for(status=fscanf(input, "%s", str); status==1; status=fscanf(input, 
"%s", str))
        {
            [...]
        }
[...]
***
anche se non mi sembra il massimo dell'eleganza :). Leggendo nei messaggi 
arretrati però ho visto che è preferibile usare sscanf() o ancora meglio 
fgets(), che sono più protette. Dunque, in sintesi, voi cosa scrivereste?
grazie,
 Dario 

 fgets(), che sono più protette. Dunque, in sintesi, voi cosa scrivereste?
scanf per leggere stringhe senza neppure specificare la dimensione
massima è particolarmente pericoloso. Quindi:
while(fgets(buf, BUF_SIZE, file)) {
        ...
}
ricordando che la fgets lascia il newline in fondo alla stringa (no,
usare gets() non è una buona idea).
Luca
-- 
"It is more complicated than you think"
                -- The Eighth Networking Truth from RFC 1925

 (no, usare gets() non č una buona idea).
perché? :) Cosa č meglio fare per gli input dallo stdin, allora? Scanf 
specificando la dimensione massima?
ciao, grazie
 Dario 

 la fine del file.
Dunque, se ho capito bene,
feof(fp) && fgets(buf, BUF_SIZE, fp)
è sempre falso?
Se sono nel file, feof(fp) è falso; se sono "oltre la fine", fgets() 
fallisce; se c'è errore nel file, fgets() fallisce di nuovo (non sono sicuro 
su questa parte).
ciao

Newsgroup: it.comp.lang.c
Titolo: Algoritmi in C di R. Sedgewick

Qualcuno sa se esitono le soluzioni agli esercizi di tale libro ?
Grazie

> Qualcuno sa se esitono le soluzioni agli esercizi di tale libro ?
le ho trovate tempo fa ma non ricordo più l'indirizzo, se vuoi te le mando.
Ciao
Newsgroup: it.comp.lang.c
Titolo: puntatori...

Ciao a tutti! ho qualche problema a capire bene quando vanno usati per forza
sti benedetti puntatori. Va detto che vengo da java e alcune cose
riguardanti i puntatori per me sono veramente senza senso.
Immaginando di dover scrivere un piccolo programmino che prenda in input due
interi, li memorizzi in due variabili e che scambi i valori di queste due
variabili ho scritto questo:
#include <stdio.h>
void swap(int i, int j) {
    int t;
    t=i;
    i=j;
    j=t;
}
void main() {
    int a,b;
    a=5;
    b=10;
    printf("%d %d\n",a,b);
    swap(a,b);
    printf("%d %d\n",a,b);
}
che ovviamente non riesco a compilare. Poi dopo aver letto vari tutorial sui
puntatori trovati in rete l'ho riscritto cosě:
#include <stdio.h>
void swap(int *i, int *j) {
    int t;
     t = *i;
    *i = *j;
    *j = t;
}
void main()  {
    int a,b;
     a=5;
    b=10;
    printf("%d %d\n",a,b);
    swap(&a,&b);
    printf("%d %d\n",a,b);
}
e funziona ma non riesco a capire per quale infame motivo devo passare due
puntatori alla funzione swap invece di due variabili come avrei fatto con
java. Chi di voi č cosě gentile da spiegarmi il perchč?

 puntatori alla funzione swap invece di due variabili
Premesso che in Java le "variabili" sono in realtà tutte dei puntatori, 
ma prive dell'aritmetica dei puntatori che c'è in C (son dei reference, 
in pratica), e che è la definizione del linguaggio che ti nasconde 
abbastanza bene questo fatto, comunque dovresti (se non erro) 
incapsulare i due valori in oggetti di tipo Int se vuoi che le cose 
funzionino.
Questo perchè gli oggetti in Java vengono passati ai metodi sempre per 
riferimento, mai per copia (in pratica, vien passato al metodo un... 
puntatore all'oggetto). Mentre invece i tipi nativi vengono passati per 
copia, esattamente come in C.
In C, invece, tutto vien sempre passato per copia, anche i puntatori. Ma 
poi puoi usare la copia dei puntatori per modificare i dati a cui 
puntano...
In C++ è diverso ancora, ma non siam sul newsgroup giusto.
-- 
   |   \    \  | ___|_  |_  | ianezz a casa sua... :-)
   |  _ \  | \ | _|    /   /  Visita il LinuxTrent a
  _|_/  _\_|  _|____|___|___| 
http://www.linuxtrent.it

 puntano...
quindi se io passo una variabile in questo modo:
void swap(int i, int j) { ...
non posso modificarne il contenuto all'interno della funzione, giusto? se
invece passo un puntatore:
void swap(int *i, int *j) { ...
posso modificare il valore a cui punta il puntatore in quanto ciň che passo
č un indirizzo. Ho capito bene?

 č un indirizzo. Ho capito bene?
Si.
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

finalmente ho capito! grazie