mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c
Titolo: DATE UN OCCHIATINA QUA PLEASE!

Come prima cosa vi ringrazio per il tempo che (eventualmente) metterre a
disposizione per aiutarmi.
Avrei un paio di cosine da chiedervi...
Come prima cosa: quale č il comando che mi permette di acquisire imput da
tastiera senza che bisogni premere invio per confermare?
Sareste inoltre cosě gentili da inviarmi un paio di sorgenti (possibilmente
non eccessivamente complessi) in C in cui compaiano operazioni di pop & push
& top per lo STACK o di enqueue & dequeue per il QUEUE (o coda),
eventualmente saranno ben accetti anche algoritmi di ordinamento (merge
sort, quick sort, selection sort)!!
Mi aiutereste molto xchč al momento il C mi č davvero molto oscuro!!

& top per lo STACK o di enqueue & dequeue per il QUEUE (o coda),
Ti invio quello piu' semplice che riguarda lo stack :
#include <stdio.h>
void push( int x, int * * stack )
{
     *(*stack)++ = x;
}
int pop( int * * stack )
{
    return *(--*stack);
}
main()
{
  int * stack = ( int * ) malloc( 50 );
  push( 3, &stack );
  push( 2, &stack );
  push( 1, &stack );
  printf( "%d\n", pop( &stack ) );
  printf( "%d\n", pop( &stack ) );
  printf( "%d\n", pop( &stack ) );
  return 0 ;
}
Skyscraper
----------------------------------------------------------------
"Sopra il camper la capra campa, sotto il camper la capra crepa"
--
Posted from 
itaca.ulysse.it
 [195.223.254.1]
via Mailgate.ORG Server - 
http://www.mailgate.org

 Mi aiutereste molto xchè al momento il C mi è davvero molto oscuro!!
Mi sa che se non ti metti di buona volontà a studiarlo rimarrà oscuro
per molto tempo... :-)
EMG

Newsgroup: it.comp.lang.c
Titolo: [...Helpatemi!!...]

come faccio un prog in c\c++ che manda comandi telnet?
rsp presto grAzie...

 come faccio un prog in c\c++ che manda comandi telnet?
Figlia, sarai pure una bella gnocca, ma uno non può stare a scrivere un 
trattato su internet su come si usano i socket... e dove poi? Su 
Windows? Su Unix? Se vuoi aiuto ci devi spiegare che stai facendo e 
dove, e con quali strumenti.

Newsgroup: it.comp.lang.c
Titolo: Tutorial Jackson





Ciao a 
tutti.


 


Tempo fa scaricai un 
bellissimo corso su C della Jackson, suppongo non 
recentissimo.


E' interattivo, si 
esegue cioè da una shell di dos.


 


Sapete dove posso 
ritrovarlo?


Grazie&&Ciao


Diego



 
Diego.I...@snamprogetti.eni.it
, arrivato su it.comp.lang.c,
      inquieto` tutto il newsgroup con le sue frasi...
 > This message is in MIME format. Since your mail reader does not
 > understand this format, some or all of this message may not be
 > legible.
Noto che qui  c'e` la brutta abitudine di postare in html e porcherie
simili. Allora la vogliamo finire???
Ciao
-- 
Subject con R: corretti automaticamente, ma comunque
                                     patcha il tuo newsreader.
Newsgroup: it.comp.lang.c
Titolo: Costruire un float.

Ciao a tutti,
avrei un piccolo problema, spero che qualcuno di voi possa
risolvermelo:
ho 4 valori unsigned char che vorrei unire a formare un float, come
posso fare???
Grazie per l'aiuto.
Paolo

 wrote in message
3771305...@news.polito.it...

soluzione piu' corretta:-------------------------------------------------
union Floatsplit
{
  float fval;
  struct { unsigned char byte0,byte1,byte2,byte3; } bval;
};
union Floatsplit prova;
  prova.bval.byte0= --- ;      // scrivi i 4 byte
  prova.bval.byte1= --- ;
  prova.bval.byte2= --- ;
  prova.bval.byte3= --- ;
float result = prova.fval;     // leggi il float
soluzione da zappatori dell'informatica:----------------------------------
float result;
long *p = (long*)&result;
  *p = (long)byte0 + ((long)byte1<<8) + ((long)byte2<<16) +
((long)byte3<<24);
a te la scelta!
ciao
donCiccio

posso fare???
main()
{
    float f ;
    char * p = (char*)&f ;
    char b0, b1, b2, b3 ;
    p[0] = b0 ;
    p[1] = b1 ;
    p[2] = b2 ;
    p[3] = b3 ;
}

 un float, come posso fare???
  A causa della differenza tra le "endianita`" delle varie macchine, il
tuo e` un problema che ha una soluzione non portabile. Ad ogni modo,
potresti creare un vettore di quattro caratteri e poi farne il casting a
float.
<CODE>
	unsigned char my_vector[4]={my_uns_char_1,...};
	float *my_float;
	my_float=(float *)my_vector;
</CODE>
  Salvo errori e/o omissioni. ;)
	Alla prossima,
		Marco

}
Grazie mille.
Paolo

}
e' possibile susare anche una union?
Ciao

>e' possibile susare anche una union?
Si potrebbe scrivere :
#include <stdio.h>
typedef unsigned char byte ;
typedef struct { byte b0 ;
                 byte b1 ;
                 byte b2 ;
                 byte b3 ;
               } FloatByte ;
typedef union {
                float FVal ;
                FloatByte BVal ;
              } FloatCostruito ;
int main()
{
    FloatCostruito F ;
    F.FVal = 5.5 ;
    printf ( "%X %X %X %X\n", F.BVal.b0, F.BVal.b1, 
                              F.BVal.b2, F.BVal.b3 ) ;
    F.BVal.b0 = 0 ;
    F.BVal.b1 = 0 ;       /* Assegnazione del valore 1.25 */
    F.BVal.b2 = 0xA0 ;
    F.BVal.b3 = 0x3F ;
    printf ( "%f\n", F.FVal ) ;
    return 0 ;
}
Newsgroup: it.comp.lang.c
Titolo: Un saluto ed un quesito stilistico

Ciao a tutti, sono un nuovo frequentatore di questo Newsgroup e spero che la
mia permamenza qui sarà profiqua tanto per me (sicuramente) quanto per voi
(un po' meno sicuramente ^__^).
Volevo proporre, già che c'ero, un quesito stilistico ai programmatori +
paranoici e "precisini" fra di voi.
Supponiamo che io stia realizzando, in C++, un programma Win32 provvisto di
GUI.
Questa GUI è composta da una singola finestra dalla quale, saltuariamente,
saltano fuori dei dialog.
Il mio cruccio è la finestra principale: dato che non esisterà mai + d'una
istanza di questa finestra per processo, pensate sia necessario incapsulare
funzioni e variabili in una classe oppure sia stilisticamente più
corretto/gradevole utilizzare le normali funzioni stile C?
Può sembrare una cavolata, eppure ho visto un sacco di gente discutere di
brutto di fronte a situazioni di questo tipo.. voi che ne pensate?
--
-=| Nuitari, Britannia Kingdom's Administrator |=-
-=| 
http://www.britanniakingdom.com
 |=-

 cut >
--> it.comp.lang.c++  :-)
Qui si parla di ANSI C.
Ciao !
-- 
Slackware 8.1 - 2.4.19 - GCC version 2.95.3

 ha scritto nel messaggio
news:slrnammt95.aq.n...@lor.ilweran.org...


 Beh, i saluti permangono :-)
Ok, ciao Nui, ci si vede sul forum :)
Nicholas

Newsgroup: it.comp.lang.c
Titolo: Dubbi esercizio C

Buonasera, sono un novello studio del C (uso il Deitel&Deitel che mi hanno 
consigliato visto la mia conoscenza 0 di programmazione).
Sul libro ho questo esercizio:
"Scrivete un programma che legga il raggio di un cerchio e visualizzi il 
diametro, la circonferenza e l'area dello stesso. Usate il valore costante 
3,14159 per PIgreco. Eseguite questi calcoli all'interno della/e 
istruzione/i printf e usate la specifica di conversione %f. [Nota: in questo 
capitolo abbiamo trattato soltanto costanti e variabili intere. Nel Capitolo 
3 discuteremo i numeri in virgola mobile..]
Io penso di aver scritto il programma correttamente (uso DevCpp come 
ambiente di programmazione anche se non mi aiuta molto il debugger).
Ecco il codice:
#include <stdio.h>
/* la funzione main è il punto d'inizio dell'esecuzione del programma */
int main(void)
{
   int raggio; /* valore del raggio immesso dall'utente */
   printf("Inserire il valore del raggio: "); /* prompt */
   scanf("%d", &raggio); /* leggo il raggio */
   printf("Il diametro e' %f\n", 2 * raggio); /* visualizzo e calcolo il 
raggio del cerchio */
   printf("La circonferenza e' %f\n", 2 * 3.14159 * raggio); /* visualizzo e 
calcolo la
                                                                circonferenza 
del cerchio */
   printf("L'area e' %f\n", 3.14159 * raggio * raggio); /* visualizzo e 
calcolo l'area
                                                           del cerchio */
   return 0; /* indica che il programma è terminato con successo */
} /* fine della funzione main */
Il mio dubbio riguarda la prima printf che mi visualizza il valore 0 invece 
di 4. Come mai?
(Ho provato a scrivere 2.0 e funziona ma non capisco perchè se scrivo solo 2 
mi visualizza 0).
Grazie e scusate il post lungo. 

"asd" ha scritto

2 è una costante intera, 2.0 è una costante floating point.
Quando fai "2 * raggio" fai una operazione tra 2 interi e il risultato è un
intero, quando fai "2.0  * raggio" prima raggio viene convertito in floating
point in quanto un operando è floating point e quindi si opera con i
floating point ottenendo un risultato floating point.
Quando usi il risultato dell'operazione nella printf nel primo caso usi %f
passando però un valore intero.


Ah ecco, quindi non mi converte automaticamente?
XBoxLive TAG: Criceto
MarioKartDS friend's code: 528342 - 062642
ICC WebSite: 
http://icc.linby.net

 ha scritto nel messaggio 
news:qct2t2pdhfe048r8j...@4ax.com...

Newsgroup: it.comp.lang.c
Titolo: Impulso di 25us (microsecondi) sulla parallela....come si può fare? AIUTO!!!

Il problema è il seguente:
Mi serve mantenere per un tempo di 25us (microsecondi) un livello
logico alto su un piedino della porta parallela. Per fare un esempio,
se in C ho il seguente pezzo di codice:
.................................
outp(0x378, 0x001);
delay(1);
outp(0x378, 0x000);
.................................
sulla porta parallela il piedino uno del connettore rimane a livello
logico uno (cioè ad un valore di tensione pari a 5 Volt) per 1ms
(millisecondo) perchè delay(1) da un ritardo di 1ms prima
dell'esecuzione della successiva istruzione. A me serve avere questi
5V per un tempo di 25us (che è un quarantesimo di 1ms) e tale
istruzione delay() non va più bene. Qualcuno di
voi, sicuramente più esperto di me nel campo della programmazione, mi
può indicare come posso fare? Ho pensato di far eseguire le sole
righe:
.................................
outp(0x378, 0x001);
outp(0x378, 0x000);
.................................
Tuttavia così non sono svincolato dalla velocità della cpu e del suo
clock e comunque per vedere quanto tempo impiegano le due istruzioni
ad essere eseguite e quindi quanto dura l'impulso di 5V servirebbe un
oscilloscopio che non ho.
AIUTOOOO!
Gazie in anticipo,
saluti,
Carlo.

 [...]
25uS e' un tempo abbastanza difficile da sincronizzare...
Ti basterebbe una cosa del tipo >=25 o <=25?
Per quale piattaforma stai sviluppando dos/win32/linux ?
Fammi sapere almeno queste cose, forse ti posso aiutare...
-- 
     (ZZZ)       Filippo Salotti, Bagni di Lucca, Lucca, Italy.
    //   \\  _                 E-mail : 
fil...@humnet.unipi.it
   /Y\    ZD<_o===============================================o
 .oZZZZZo.     | Studente Ingegneria Informatica Automatica  |
<OXXXXXXXO>    | Dip. Sistemi Elettrici Universita' di Pisa. |

In DOS con un PC puoi leggere direttamente il valore del contatore 0 del PIT
(8253 o 8254).
La frequenza di ingresso del PIT e' circa 1193181Hz.
1ms corrisponde a circa 1193 'colpi' di clock, 25us circa 30.
Per leggere il canale 0 usa la funzione che segue.
#define PC_I8253_TIMER_0       0x41
#define PC_I8253_TIMER_CTR 0x43
unsigned short leggich0(void)
{
asm {
    pushf
    cli
    mov     al,0
    out     PC_I8253_TIMER_CTR,al
    in      al,PC_I8253_TIMER_0               // legge LSB
    xchg    al,ah
    in      al,PC_I8253_TIMER_0               // legge MSB
    xchg    al,ah
    popf
}
    return (_AX);
}
Per sapere se sono passati circa 25us leggi il contatore leggi il valore e
attendi finche' (continuandolo a leggere) non scende di 30.. Attento ai
passaggi per lo zero..
Marco
Newsgroup: it.comp.lang.c
Titolo: [niubbo] - cos'è una dll?

grazie a chi vorrà rispondermi.

 grazie a chi vorrà rispondermi.
DLL = Dynamic Linking Library (ovvero libreria a collegamento dinamico)
Nel mondo Windows viene usata per condivirere pezzi di codice tra piu'
programmi o per suddividre il programma in pezzi in modo da poterli
sostituire senza dover ricompilare tutto il programma (a patto di
mantenere invariate le interfacce).
In altri sistemi esistono file simili per fare le stesse cose, solo
che si chiamano in modo diverso.
HTH
C:\>iao Angelo
P.S. La tua domanda ha poco a che fare con il "C" e molto con Windows,
     il ng piu' appropriato sarebbe stato it.comp.programmare.win32
-- 
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: esecuzione condizionale

Spero che il subject sia appropriato all'argomento.
Parlo di if....else!
La condizione segue a if ed è inclusa in parentesi tonde:
if (var1 == var2) {
    printf("Scelto bene");
} else {
    prinf("Scelto male");
{
Ora, vi domando:
1) ma la condizione può essere solo un confronto (realizzato con gli
operatori c.d. relazionali)?
Es. ==
      <
      >
      !=
      ecc.
2) Il valore di una condizione è 1 se la condizone è vera mentre è zero se è
falsa: a cosa serve l'operatore not logico?
Es.
if (! var1) {
    printf("Scelto bene");
}
cosa significa? Io ho capito quanto segue!
La stampa vierne eseguita se e solo se var1 == 0!
Cioì se var1 è uguale a zero è evidente che la condizione varrebbe 0, mentre
varrebbe uno in tutti gli altri casi! Per "invertire" la situazione in modo
che la stampa avvenga se var1 vale 0, antepongo a var1 il "!". E'
equivalente a var1 == 0.
ok?
Grazie

 falsa: a cosa serve l'operatore not logico?
A invertire il risultato logico dell'espressione.
Ricorda: true = non zero, false = zero.

 Grazie
Prego.
--
Cingar
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 invertire il senso logico di una frase.
ok
Altre tre cosucce :-)
1) perche' si fa:
long int = spesa;
spesa = 32500L ??
A che serve quella "L" in coda al numero intero?
2) quando la condizione riguarda solo una variabile, è preferibile usare
if..else oppure switch...break?
3) quando è preferibile usare, anzichè if...else la famosa espressione
condizionale O operatore ternario)?
Ess:
int spesa;
spesa = (pollo > 10) ? 350 : 550;
int spesa;
printf( (spesa == 250) ? "bello" : "brutto");
Grazie

 condizionale O operatore ternario)?
L'operatore ternario restituisce a seconda della prima espressione un 
valore, che è il risultato di una delle due espressioni successive. 
Quindi è un modo conveniente di ottenere un valore, es. fare una 
assegnazione, che con if dovresti fare in più statement.

 assegnazione, che con if dovresti fare in più statement.
Perfetto! Ma cosa si intende esattamente con statement?
Grazie mille

 Perfetto! Ma cosa si intende esattamente con statement?
Una singola istruzione C.
Newsgroup: it.comp.lang.c
Titolo: problemi con il turbo c++

per coloro che ancora programmano in dos con il turbo c++ della
borland:
quando compilo un programma di con estensione cpp
usando  puntatori  sia a stringhe e a vettori di interi
e usando come output a video lo iostream standard
quindi cout<<?? alla fine del programma nella migliore
delle ipotesi ricevo il messaggio di NULL POINTER ASSIGNEMENT
nel peggiore dei casi di si 'mpalla il computer
le ho provate in tutti i modi di aggirare questo problema ....
vi prego se ne sapete qualcosa contattatemi
 
uc...@tin.it
grazie per l'attenzione !


Prendi fiato e ridescrivi tutto con calma!
Apparte questo se appare quella scritta vuol dire non usi correttamnete
i puntatori. _Probabilmente_ o usi un puntatore che ha valore NULL
oppure esegui due volte la delete.
Ciao.
PS Comunque qui sei OT per il C++ esiste un gruppo apposito.
-- 
     (ZZZ)       Filippo Salotti, Bagni di Lucca, Lucca, Italy.
    //   \\  _                 E-mail : 
fil...@humnet.unipi.it
   /Y\    ZD<_o===============================================o
 .oZZZZZo.     | Studente Ingegneria Informatica Automatica  |
<OXXXXXXXO>    | Dip. Sistemi Elettrici Universita' di Pisa. |
Newsgroup: it.comp.lang.c
Titolo: push e pop...

Scusatemi per la domanda cretina e magari poco chiara: come mettere a punto le due funzioni sopraelencate? ;-)

Scusatemi per la domanda cretina e magari poco chiara: come mettere a punto le due funzioni sopraelencate? ;-)
in uno stack ?
ipotizza di avere quanto segue:
typedef struct stack
{
	struct stack *prev;
	int data;
} STACK;
STACK base = { NULL, 0 };
STACK *baseptr=base;
void push(int data)
{
	STACK *add=(STACK *) malloc(sizeof(STACK));
 
	if (!add) return;
	add->prev=baseptr;
	add->data=data;
	baseptr=add;	
};
int pop(void)
{
	int i=baseptr->data;
 
	STACK *kill=baseptr;
	if (baseptr->prev) {
		baseptr=baseptr->prev;
		free(kill);
	};
	return i;
};
Questa é una forma molto molto molto primita per gestire una push e
una pop. ovviamente se programmi in C++ puoi utilizzare un template
e una classe per gestire la coda, io ti ho fatto un solo esempio
cod

 ha scritto nel messaggio
news:UjCR6.3526$ZZ.1...@news.infostrada.it...
Scusatemi per la domanda cretina e magari poco chiara: come mettere a punto
le due funzioni sopraelencate? ;-)
L'esempio di cod e' sicuramente la soluzione migliore, tuttavia per piccoli
stack si puo' usare un array fisso:
#define MAXSTACK     deciditu
typedef quellochetiserve type;
type stack[MAXSTACK];
unsigned len;
int  push ( type elem )
{
  if( len>=MAXLEN )  return 0; // non c'e' posto
  stack[len++]=elem;
  return 1;
}
int  push ( type * elem )
{
  if( !len )  return 0; // lo stack e' vuoto
  *elem=stack[--len];
  return 1;
}

 e una classe per gestire la coda, io ti ho fatto un solo esempio
Ok... ma io devo creare un programma che gestisca le funzioni push, pop e "stampa", per stampare a video il contenuto dello stack e la situazione (pila piena, pila vuota...)

"stampa", per stampare a video il contenuto dello stack e la situazione
(pila piena, >pila vuota...)
uno stack con allocazione dinamica e' davvero semplice e le 5 funzion che
chiedi sono banali. Tu dove stai studiando queste cose ?!?
Alex

le due funzioni sopraelencate? ;-)
e io che mi ero con tanto amore messo a scrivere l'esempio!!!!!
:(
cod

 ha scritto nel messaggio
news:0pifhtghovlj0733s...@4ax.com...

cioe'?
ciao
donCiccio

 e io che mi ero con tanto amore messo a scrivere l'esempio!!!!!
Hai ragione... non fare così!! :-)

cioe'?
mi sento offeso nel vedere scritto come si usano????
nel + semplice dei modi, chiamando la funzione
push e pop
cod

 ha scritto nel messaggio
news:p02hhtkh7h9pfb34t...@4ax.com...

ti chiedo scusa per averti offeso, non era mia intenzione sminuire il
tuo lavoro, volevo far presente che per piccole necessita' si poteva
fare diversamente, tutto qui!
cmq, non riesco bene a decifrare questo tuo post, ti e' rimasta
qualche parola nella tastiera? :-)
ciao
donCiccio
Newsgroup: it.comp.lang.c
Titolo: Come si compilano due file il primo di tipo .c l'altro di tipo .asm(Assembler)

Io utilizzo windows non riesco a linkare i due file come si fa? Se qualcuno 
mi volesse dare la proderura partendo dalla compilazione dei file in modo da 
ottenere i 2 file oggetto sino al linkaggio. 



Bisogna conoscere il compilatore C e il linker da te utilizzato, nonché
l'assemblatore utilizzato per produrre il file oggetto dal .ASM. Se i
formati oggetto sono compatibili e i riferimenti esterni tra i file si
risolvono correttamente, il linker riesce a generare l'eseguibile
correttamente.
 
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

Io utilizzo gcc per la compilazione c metre per la compilazione il TASM o il 
MASM.
"Andrea Laforgia" <x...@xx.xx> ha scritto nel messaggio 
news:213Z140Z22Z71Y1...@usenet.libero.it...


 MASM.
Il linker fornito con gcc riconosce i file oggetto in formato COFF, mentre
quelli prodotti da TASM/MASM sono in formato OBJ/OMF. Se i file assembly che
hai non sono troppo lunghi, puoi provare a convertire la sintassi Intel in
quella AT&T (riconosciuta dall'assemblatore "as" di gcc).
Guarda qui:
http://www.delorie.com/djgpp/faq/converting/asm.html
http://tinyurl.com/864w6
Il Visual C++, comunque, dovrebbe avere un tool che consente di convertire
un file in formato OMF in uno in formato COFF.
Altri assembler, come NASM, ad esempio, supportano entrambi i formati, ma la
sintassi utilizzata per il codice è quella AT&T, non quella Intel usata
invece da TASM e MASM.

Newsgroup: it.comp.lang.c
Titolo: [OT forse] script csh

forse sono OT ma vi ringrazio per un aiuto...
il seguente banalissimo script sotto la Bash funziona:
#!/bin/sh
hello(){
    echo "ciao"
}
hello
se tento di utilizzare la csh non mi va???
Ma come posso utilizzare le funzioni(se possibile) nell C-Shell???
Ciao e grazie

 Ma come posso utilizzare le funzioni(se possibile) nell C-Shell???
Finora mi risulta che  mancano nelle csh-like shells.
Giorgio
Newsgroup: it.comp.lang.c
Titolo: semplice programma

Ciao a tutti, ho un piccolo problemino con questo semplice programma che non
deve fare altro che creare una pagina html.
Il problema č questo: in fase di compile-time mi da un errore di "access
violation", mi visualizza la situazione della cpu, ovviamente non ci capisco
niente.
Come posso risolvere il problema? inoltre visto che mi trovo qual'č la
funzione che mi permette poi di aprire il file?
Se puo esservi utile utilizzo il compilatore borland c++ 5.02
Grazie x la consulenza, un saluto a tutto il ng.
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
void main(){
   FILE  *p;
   if((fopen("pagina.htm", "w+"))==NULL){
    printf("Errore nell'apertura del file");
      return;
      }
   fprintf(p, "<html>\n");
   fprintf(p, "<head>\n");
   fprintf(p, "<title>Pagina generata</title>\n");
   fprintf(p, "</head>\n");
   fprintf(p, "<body>\n");
   fprintf(p, "Ciao bestia...............!\n");
   fprintf(p, "</body>\n");
   fprintf(p, "</html>\n");
   fclose(p);
   }

    if((fopen("pagina.htm", "w+"))==NULL){
      ^^^^^
Ehm, sicuro di non aver dimenticato niente?
Ciao
        gpb

    if((fopen("pagina.htm", "w+"))==NULL){
Non hai assegnato p.
EMG


Per risolvere questi problemi c'è un metodo molto semplice e veloce:
utilizare il debugger. Quello del borland è facilissimo da usare.
Semplicemente setti dei brack point sul codice (semplicemente
cliccando con il mouse in corrispondenza della posizione) e avvii "Run
for here" o uno nome simile (adesso non ricordo).
In questo caso dovevi mettere un break point all'istruzione FILE *p e
vedere a che riga si core dumpava il programma (quella subito dopo).
In questo modo si risolvono molti problemi.
Meglio ancora ti scarichi SoftICE della Numega Soft e usi quello
(dovrebbe supportare il load diretto del sorgente C).
Paolo

 wrote:
[ snip ]
g>void main(){
int main() {
[ snip ]
g>   if((fopen("pagina.htm", "w+"))==NULL){
     if((p = fopen("pagina.htm", "w+")) == NULL) {
[ snip ]
g>      return;
	exit(1);	
[ snip ]
g>   fclose(p);
Aggiungi
     return 0;
Ciao ciao,
Andrea
-- 
"...Unix, MS-DOS, and Windows NT (also known as the Good, the Bad, and 
 the Ugly)."
(by Matt Welsh)

Grazie a tutti per i consigli che mi avete dato e dalla prossima volta usero
i brack point, non li avevo mai usato e adesso ho capito a che servono.
Ciao a tutti!

         exit(1);
Anche un semplice
return 1;
andrebbe bene, no?
EMG

i brack point, non li avevo mai usato e adesso ho capito a che servono.
Giusto per essere pignoli, si dice "break" point ;)
--
Andrea Laforgia        (
andrea_...@bigfoot.com
)

Giusto per essere pignoli, si dice "break" point ;)
Ma come ho potuto scrivere una boiata simile (ha copiato l'espressione
esattamente da un mio post).
E' inutile: non riuscirò mai a postare un msg privo di errori di
battitura .........    :)
Paolo
Newsgroup: it.comp.lang.c
Titolo: quesito su cin.getline

Ciao a tutti!! 
Ho (tra i tanti) il seguente problema: devo "tradurre" il comando
cin.getline(msg,81); (che ovviamente è in C++) nel corrispondente in
C. Come faccio??!

Lean wrote:

   Consulta il manuale del tuo compilatore alla voce fgets().
-- 
Alla prossima,
Marco

Newsgroup: it.comp.lang.c
Titolo: curva di gauss

Ciao a tutti,
ragazzi mi servirebbe una mano io devo realizzare un programma in
c/c++ che mi visualizzi la curva di gauss.
Mi sapete dire come posso fare???
Grazie 1000 a tutte le persone che mi vorranno aiutare.

 Mi sapete dire come posso fare???
Cosa intendi per "curva di Gauss" ?
la funzione f(x) = Exp(-x^2)  ?
in tal caso l'unica cosa che posso dirti e'
che la funzione di Gauss la puoi
calcolare in c o c++  con
#include<math.h>
double Gauss(double x)
{
   return exp(-x*x);
}
Questo e' quello che riguarda il c "standard".
La visualizzazione a schermo tipicamente non
fa parte del c o del c++ standard, ma dipende
dal sistema operativo o dal compilatore con il
quale lavori.
Quindi qui e' OT.
Rivolgiti al gruppo che riguarda la programmazione
specifica del tuo sistema, per esempio:
it.comp.programmare.win32
it.comp.os.linux.development
ciao,
g.
Newsgroup: it.comp.lang.c
Titolo: printf - Stampare su video una "è"

Ciao a tutti,
ho appena cominciato il mio viaggio nel mondo del c...
potrei chiedervi come posso fare per stampare a video il carattere č con
la funzione printf? Se uso il carattere č cosě come č sulla tastiera mi
stampa un simbolo strano (credo fi maiuscolo dell'alfabeto greco).
Grazie.
-- 
GrooveMan
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 Grazie.
o usi i wchar e le tabelle unicode, o ti impari il valore di tale char su
ogni code di tastiera ... cioe' usa ita ecc ...
ciao
ps. puoi sempre usare dei set di caratteri esterni ... ma cio' esula dallo
standard c ...

Per stampare dei caratteri particolari devi fare cosě:
printf("%c", xxx);
al posto delle x devi proprio scrivere un numero che corrisponde alla
codifica ASCII delle lettere. Se compili e fai girare il codice che ti
scrivo tra poco otterrai a schermo tutti i caratteri con il corrispondente
numero ASCII.
Ciao, Simone
/*
    Title:        Codice ASCII
    Author:       Simone Amati
    Description:  Il programma stampa tutto l'elenco dei caratteri con il
                  corrispondente codice ASCII
    Date:         04-05-2002
*/
#include <stdio.h>
#include <stdlib.h>
int main()
{
    int cont;
    for (cont = 1; cont <= 256; cont++)     {
        if ( cont%12 == 0)
        printf("\n");
        printf("%d=%c ", cont, cont);
    }
    printf("\n");
    system("PAUSE");
    return 0;
}

 */
scusa.. non ti pare sia un po' esagerato per un programma di 8 righe... ?
;)

Grazie a tutti dell'aiuto.


Magari tutti i programmatori avessero il vizio di commentare esageratamente
il proprio codice.
Ciao
Giuseppe
"FRaNCeSCo" <?@?.?> ha scritto nel messaggio
news:%sY7b.45321$hE5.1...@news1.tin.it...


 il proprio codice.
e' un vizio che ancora non ho preso :-/ ... sara' che lavorandoci solo io so
a memoria la struttura e quindi non mi dimentico dove ho fatto qualcosa ...
ma purtroppo devo incominciare ad obbligarmi a fare dei commenti :-p
ciao
Newsgroup: it.comp.lang.c
Titolo: Approssimazioni

Salve a tutti vorrei porvi una domanda
Facendo un ciclo all'interno del quale incremento una variabile float
esempio 0.2 + 0.2 +0.2..... dopo poche iterazioni non ottengo multipli
di 0.2 ma subentrano numeri tipo 1.799999   e ovviamente proseguendo  si
sommano gli errori. Qualcuno sa se c'è una soluzione standard a questo
problema che esiste anche con normali divisioni (es 2/10)
(che supponevo potesse esistere ma non in modo cosi evidente dopo poche
iterazioni),
  grazie !
--
Posted from 
mindseal.comm2000.it
 [194.133.0.6]
via Mailgate.ORG Server - 
http://www.mailgate.org

 iterazioni),
Si chiamano 'errori di arrotondamento'; sono causati dal fatto che 0.2
non si puo' rappresentare esattamente in base 2 (se ci provi ti viene
0.001100110011... periodico).  Si dovrebbero studiare tra i primissimi
rudimenti dell'informatica.  Non si possono evitare a meno di usare
una rappresentazione non binaria dei numeri (o tipi del linguaggio
come int e unsigned long, o rappresentazioni ad hoc come librerie BCD)
ed evitando l'uso di float e double.
-- 
Maurizio Loreti                         
http://www.pd.infn.it/~loreti/mlo.html
Univ. of Padova, Dept. of Physics - Padova, Italy            
lor...@pd.infn.it

iterazioni),
Sono errori di "round-off" generati dal fatto che la rappresentazione
di numeri in virgola mobile e' molto poco precisa nei computer
(dipende comunque dal tipo di precisione aritmetica che si usa).
Una soluzione che intravedo e' quella di usare degli interi.
Ad esempio, assumendo la convenzione di utilizzare dieci cifre
significative si puo' rappresentare 0.2 come 
0000200000 cioe' come 200000
sommando, si ottiene :
0000020000+
0000020000+
0000020000+
0000020000+
0000020000+
0000020000+
0000020000+
0000020000+
0000020000=
0000180000

]
Newsgroup: it.comp.lang.c
Titolo: editor/compilatore c,c++

sapreste indicarmi un buon editor/compilatore per c,c++ per win9x
grazie
Mauro

 Mauro
1) C++ Builder della Borland
2) Visual C++ della Microsoft
Bob Rock

2) Visual C++ della Microsoft
da quando Visual C++ č un "buon" compilatore?
--
Antonio Cuni, 18 anni, studente
Brainbench Certification: 
Master C++: 4.6, higher than 98% of all previous test takers.
C Language: 3.32, higher than 79% of all previous test takers.
http://www.brainbench.com/transcript.jsp?pid=1301688

> da quando Visual C++ č un "buon" compilatore?
Da quando č leader di mercato.
Bob Rock

 Da quando è leader di mercato.
Cito una considerazione fatta su un altro ng (che non ricordo), a proposito
della risposta "Windows e' il miglior sistema operativo perche' e' il piu'
diffuso":
"Miliardi di mosche mangiano merda" - parole sante, dico io, parole sante.
-- 
 Ciao, Bianco.
 Reply to luca.bianco (at) 
tiscalinet.it


ringrazio per la risposta al mio quesito iniziale e  condivido pienamente le
considerazioni dell'amico Bianco.
Ciao Mauro

 wrote in message
news:9a7bpi$9fe$1...@lacerta.tiscalinet.it...

Beh, io credo che valga a questo punto la pena fare alcune considerazioni:
1) magari la merda non è poi cosi male (e poi chi ha detto che si tratta di
merda?)
2) visto che hai chiesto consiglio su quale compilatore impiegare mi spieghi
cosa tutto d'un tratto ti rende tanto erudito su tale argomento. sulla base
di quali conoscenze o illuminazione ora "condividi" il giudizio (soggettivo)
espresso da Bianco?
Non vorrei dare l'impressione sbagliata, non sono qui per difendere o
sponsorizzare nulla e nessuno. Cerco solo di capire i meccanismi mentali
delle persone.
Bianco ti vorrei far notare che un prodotto non è buono o cattivo
esclusivamente per quello che offre in se. Fondamentale è il
supporto/risorse che sull'impiego di tale prodotto puoi reperire in giro.
VC++ a mio avviso è un ottimo prodotto perche pur non essendo migliore di
altri prodotti della concorrenza ha una knowledge base diffusa, a chiunque
accessibile, che è di gran lunga piu vasta di tutti i prodotti concorrenti
messi assieme.
Bob Rock

espresso da Bianco?
rispondo io, visto che scatenato la discussione.
Semplicemente perchè VC++ ha un sacco di bug: è il meno standard tra i
compilatori C++ più diffusi, anche quando correggere qualche
non-compilance sarebbe molto facile (es. lo scope della variabile
definita all'inizializzazione di un for); il supporto alla libreria
standard del C++ è pessimo; è fornito con un framework (MFC) che,
oggettivamente, non è il massimo; l'unica cosa bella che credevo che
avesse era il debugger: da quanto ho letto su una mailing list anche
esso ha i suoi bug; non riesco ancora a capire il significato di
"Visual" ;-)
Anto
PS ah, dimenticavo: è un prodotto M$ :-)


 non riesco ancora a capire il significato di "Visual" ;-)
Qualcuno, tempo fa, rispose alla mia stessa obiezione che con il Visual
C++ si poteva lavorare praticamente come con il Visual Basic. Ora ho
nuovamente il dubbio che questo non sia vero...
EMG

 rispondo io, visto che scatenato la discussione.
[...]
Grazie, non avrei saputo far meglio.

Newsgroup: it.comp.lang.c
Titolo: come si usa il compilatore?

salve a tutti,
sono nuovo del ng e ho da poco cominciato a studiare il C in ambiente
windows, quindi vi prego di scusare la banalità delle domande.
Veniamo a noi:
una volta che creo i listati (uso il classico blocco note di win), li salvo
con l'estensione .c o almeno è quello che ho letto sui vari libri e/o
manuali...e poi? Ho installato il compilatore Lcc-win32 ma non riesco a
farlo funzionare. Potreste indicarmi la procedura o se esistono compilatori
in italiano o guide relative, insomma qualcosa che mi possa indicare la
strada? Ho cercato in rete e ho letto il manuale del compilatore (una
piccola parte), ma  niente!
Spero possiate aiutarmi e intanto vi ringrazio anticipatamente.
ciao
Giuseppe

Su LCC-Win32 (a parte il fatto che usa l'LCC come compilatore e non il
GCC, a cui sono affezionato): basta seguire i menu: file->open... e li
gli apri il tuo file.c
Per compilare basta che metti il focus sulla finestra del programmino
in c (in caso ne avessi aperte piu' contemporaneamente) e apri il
menu: compiler->compile pippo.c (o come si chiama il tuo file).
La sintassi di un qualsiasi compilatore testuale portato dal GCC
invece e' nome_compilatore -o nome_file_output file1.c file1.c.
Mox :)

ti ringrazio, anche se fin li c'ero arrivato ;) cercherò di studiarlo meglio
grazie

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

Ho fatto un esame di Fondamenti di Informatica l'altro giorno. La prova
consisteva nel produrre un eseguibile in C con il DJGPP.
Io il mio programma l'ho fatto e funziona, il mio unico errore č stato
quello di aver omesso il "return media/4;" alla fine di questa funzione.
int mediaing(int dim, struct prodotto M[])
{int media=0;
int i;
for(i=0;i<dim;i++)
media=media+M[i].prezzoingr;
return media/4;
}
La mia domanda č: come cavolo fa a funzionare lo stesso il programma? Perchč
quel ***** di compilatore non mi ha dato nemmeno un warning (altri
compilatori l'avrebbero fatto) ? Ma soprattutto, cosa rispondo alla prof di
fronte ad un errore del genere (cercando di salvarmi il culo?)
Ringrazio anticipatamente.

 fronte ad un errore del genere (cercando di salvarmi il culo?)
Dille, come è probabilmente vero (almeno lo spero per te), che si tratta
solo di una svista.
EMG

 compilatori l'avrebbero fatto) ?
Funziona perche' non e' un errore. Probabilmente avresti dovuto usare 'dim'
al posto di '4', in modo da avere la media di un numero arbitrario di
valori...
-- 
 Ciao, Bianco.
 Reply to luca.bianco (at) 
tiscalinet.it

 valori...
Chiedo scusa, non ho letto con attenzione il post e la mia risposta e'
"poco pertinente" (gentile eufemismo) con la domanda.


quello che c'era prima...
No... raggiungere la fine di una funzione che non e' dichiarata
void senza fare nessuna return equivale a fare una return senza
specificare un valore di ritorno e questo e' catalogato come
"undefined behaviour". Sono abbastanza sicuro che questo sia il
comportamento in C++, credo pero' che la cosa valga anche per il C.
Andrea
--
Andrea Griffini, Programmer
http://www.netservers.com/~agriff
Newsgroup: it.comp.lang.c
Titolo: [forse OT] curiosità

ho questa curiosità.
Ho da poco imparato a usare le librerie grafiche e mi sono in passato un po
dilettato con pochi ma pochi elementi di grafica [grazie  donCiccio :)]
Mi è venuta questa curiosità.
Ma il C può utilizzare le librerie DirectX??
E se si,si richiamano nel programma allo stesso modo di tutte le altre
librerie grafiche?

librerie grafiche?
Non ho mai usato le DirectX, ma credo siano composte da DLL.
A seconda dell'ambiente di programmazione che utilizzi, e'
possibile agganciarle e utilizzarle (sia Visual C++, che C++
Builder possono farlo).
--
CyberWalkie - walkietalkie(at)
libero.it

librerie grafiche?
Certo, devi procurarti il DirectX SDK (e' free), piuttosto di
scaricarlo dalla rete, ti consiglio di procurarti un CD (diverse
riviste, specie quelle di programmazione lo forniscono periodicamente)
dato che e' piu' di 120 MB
ciao, acc.   
a...@libero.it

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

salve,
mi piacerebbe poter dinamicamente inserire le define necessarie in fase 
di compilazione col make; attualmente nel -cflags ho qualcosa tipo 
"-DLA_MIA_DEFINE", mentre vorrei poter specificare tale define da riga 
di comando:
$> make LA_MIA_DEFINE
Si puň? Se si Come?
Grazie
InuY4sha

 $> make LA_MIA_DEFINE
make -e VAR=VALUE
puo' aiutare?
d

 InuY4sha
In ambiente unix:
$ LA_MIA_DEFINE="valore assegnato alla define" make
oppure:
$ make LA_MIA_DEFINE="valore assegnato alla define"
Nel makefile dove c'è il comando al compilatore devi mettere:
$ cc .... -DLA_MIA_DEFINE=$(LA_MIA_DEFINE) ......
Ciao
Giovanni
-- 
   A computer is like an air conditioner,
   it stops working when you open Windows.
   Registered Linux user #337974  < 
http://giovanni.homelinux.net/
 >

 wrote :


 Giovanni
*Ok funziona* con tipo
	CFLAGS= $(LA_MIA_DEFINE)
nel Makefile e con
	make '-DPRINT_DEBUG'
come comando.
Non so se nelle tue istruzioni ci sia qualche raffinatezza in +nella 
sintassi utilizzata nel Makefile... se uso pari pari quella non mi 
sembra funzionare in quanto in fase di compilazione scrivendo
	make 'LA_MIA_DEFINE=WHATEVER_I_WROTE'
l'output risultante è
	cc -DLA_MIA_DEFINE=WHATEVER_I_WROTE


Non so in che ambiente e con quale programma make stai lavorando, ma 
non risco a capire come nell'esempio:
	CFLAGS=$(LA_MIA_DEFINE)
il comando:  make '-DPRINT_DEBUG' riesca a generare quello che ti 
aspetti.  IMO il comando corretto dovrebbe essere:
make LA_MIA_DEFINE="-DPRINT_DEBUG"
Quanto alla sintassi che io ti ho suggerito è quella classica dei make 
con la possibilità di usare le variabili di environment come variabili 
locali del makefile e che viene usata da tutti i programmi make 
(almeno quelli che ho avuto modo di usare).

Newsgroup: it.comp.lang.c
Titolo: (OT - forse no, ma credo di si) Informazioni su boot.

Ciao ragazzi.
Premetto che "smanetto" con il C solo per puro hobby ... lasciando la
programmazione seria a chi lo fa di mestire. Allora ... il mio nuovo
progetto nasce dall'aver trovato una vecchissima versione del Sistema
operativo a caratteri: voglio provare a farlo girare sul mio Pentium. Il
problema però nasce dal fatto che bisogna avere un dischetto con su il SO.
Soluzione ... mi scrivo io un programmino per la formattazione. La scrittura
del disco non ha eccessivi problemi in C .. se si conosce la struttura del
floppy. E qui viene il punto. Dove trovo queste informazioni (seuqenza delle
tracce, composizione della traccia di boot, composizione della tabella dei
file, ecc ...).
Grazie e ciao.


Prova qui :  
http://averstak.tripod.com/fatdox/00dindex.htm

Newsgroup: it.comp.lang.c
Titolo: Allocazione matrice

Ciao a tutti, ho un comportamento che non riesco a capire con
l'allocazione di memoria per una matrice di interi.
Così funziona:
int *variabile[6];  //variabile globale
miafunz(variabile); //nel main
int miafunz (int** parametro) {
	/* Per ogni riga alloco le colonne */
	for (i = 0;i < N; i++) {
		parametro[i] = (int *)calloc (N, sizeof(int));
		if ( ! parametro[i] ) return FALSE;
	}
}
Così funziona:
int **variabile;  //variabile globale
variabile = (int**)calloc (N,sizeof(int*); //nel main
/* Per ogni riga alloco le colonne , anche il ciclo nel main */
for (i = 0;i < N; i++) {
	variabile[i] = (int *)calloc (N, sizeof(int));
	if ( ! variabile[i] ) return FALSE;
}
Così va in segmentation fault:
int **variabile; //globale
miafunz(variabile); //nel main
int miafunz (int** parametro) {
                      parametro = (int**)calloc (N,sizeof(int*);
	/* Per ogni riga alloco le colonne */
	for (i = 0;i < N; i++) {
		parametro[i] = (int *)calloc (N, sizeof(int));
		if ( ! parametro[i] ) return FALSE;
	}
}
??
Ciao e grazie

 }
In miafunz stai lavorando con una copia di "parametro" mentre la 
variabile "variabile" non viene mai modificata (e resterà 
presumibilmente NULL). Ti consiglio di correggere così:
main() {
   /* ... */
   variabile=miafunz();
}
int **miafunz() {
   int **parametro;
   /* come prima */
   return parametro
}
E.

Newsgroup: it.comp.lang.c
Titolo: Windows Registry in remoto

Qualcuno di voi sa come si fa ad accedere al registro di configurazione di
un PC con NT, anche in sola lettura.
Con la funzione +ACI-RegOpenKeyEx+ACI- riesco ad accedere al registro di un PC
locale, non a quello di PC remoti.
Avete una qualche idea ?
grazie anticipatamente
--
Davide Benassi
e-mail: davide+AF8-benassi+AEA-bigfoot.com

Avete una qualche idea ?
Nel PC remoto deve girare un determinato servizio...
Ciao by Stefano from Italy
Online as 
s.pe...@usa.net

Ho capito, ma poi che funzioni devo utilizzare per potervi accedere ? e in
quale formato ?
+AD4-Nel PC remoto deve girare un determinato servizio...
+AD4-
+AD4-Ciao by Stefano from Italy
+AD4-Online as s.pettini+AEA-usa.net
+AD4-
+AD4-
Newsgroup: it.comp.lang.c
Titolo: Messaggio per Leonardo (ma anche per tutti)!

Qualche tempo fa, ad un ragazzo che ti cihedeva come forzare il riavvio di
Windows  con un programma dos, tu hai risposto che si fa in questa maniera:
=======================================================
@ECHO OFF
C:\WINDOWS\SYSTEM\RUNDLL32.EXE USER.EXE,ExitWindows
=======================================================
E aggiungesti:
=======================================================
Funziona solo se sei in una shell di Windows, ovviamente, ma se non sei
in una shell di Windows non vedo come tu possa riavviarlo :-)
Leonardo
=======================================================
Beh, io ho provato ma non mi funziona; sai dirmi perchč?
Ho fatto sia un file batch che un programma in C (che chiama la funzione
system) ma niente!!
Dopo di che ho fatto START\AVVIO\TROVA....
E il risultato č stato che il file:
RUNDLL32.EXE si trova in C:\WINDOWS
mentre
USER.EXE in C:\WINDOWS\SYSTEM
Ho un Windows alieno io oppure ti sei confuso?
Scusami e ti ringrazio per la tua attenzione!!
Ciao ciao
Davide

C:\WINDOWS\SYSTEM\RUNDLL32.EXE USER.EXE,ExitWindows
Hai sbagliato NG. Comunque il comando giusto e' :
C:\WINDOWS\RUNDLL32.EXE user.exe,exitwindows
ciao

Questo comando funziona bene per l'arresto del sistema. E per il riavvio ?
Ciao.
valvern ha scritto nel messaggio ...


>Hai sbagliato NG.
Quindi cambia NG o fammi la domanda in e-mail
ciao


Non vorrei essere un rompi palle ma, siccome il messaggio originale l'ho
letto su questo NG, mi sembrava logico spedire la mia obbiezione su questo
NG.
Comunque chiedo scusa per il mio messaggio OT.
Grazie dell'aiuto, mi sei stato utile.
Ciao e alla prossima.
Davide.
Newsgroup: it.comp.lang.c
Titolo: C e linux...

Salve a tutti!Ho da poche ore installato Linux sul mio computer, e visto
che con Windows non riuscivo a vedere l'output, ora voglio programmare
in c con linux, ma non ne so una mazza... Come faccio, che compilatore
posso usare? dove lo trovo? come lo installo? come lo compilo? come
posso guardare l'output?
Grazie a tutti quelli che vorranno aiutarmi!
Un saluto
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

come posso guardare l'output?
Sotto linux spero lancerai i programmi dalla shell, anziche' lasciare
che sia il Window Manager a lanciare la shell con il solo scopo di
eseguire quel programma... percio' prima apri una shell e poi diciti:
$ ./output_file
-- 
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."

 $ ./output_file
Dato che è decisamente un newbie, per sicurezza preciso che il
$
non va scritto: nella shell indica solo che si è loggati come user 
e non come root (in tal caso ci sarebbe #)
Riccardo

Newsgroup: it.comp.lang.c
Titolo: Numero di elementi in una enumerazione

Salve a tutti.
E'possibile ricavare il numero degli elementi di una enumerazione?
Faccio un esempio:
typedef enum {A=0,B=1,C=2} prova;
const int nelementi=3; /* il numero degli elementi di prova */
...
int vettore[nelementi];
Se adesso volessi aggiungere altri elementi all'enumerazione dovrei 
modificare anche la variabile nelementi manualmente.
C'è la possibilità di evitare questo inconveniente?
Anche se questo non è un grosso problema volevo sapere se il c dava la 
possibilità di risolverlo in maniera più elegante e magari 
risparmiandomi qualche possibile errore.
Grazie

 C'è la possibilità di evitare questo inconveniente?
Di solito si fa così:
typedef enum {A,B,C,N_ELEM} prova;
int vettore[N_ELEM];
E.

Newsgroup: it.comp.lang.c
Titolo: Cancellare un file

Salve a tutti,
Os: Linux,
Sviluppo:  Creare e poi cancellare un file di look
Problema: Come faccio a cancellare il file creato?
Grazie a chi mi  risponderŕ.
Manuele Ferraro.

 Problema: Come faccio a cancellare il file creato?
Prova con remove().
EMG

 
#include stdio.h
int remove(char *nomefile);
(il file non deve essere aperto)
Ciao!
Guido

prova con unlink("nomefile");
il file deve essere chiuso

 unlink (nomefile);
E che roba č? La funzione fornita nella libreria standard del C č
remove().
EMG



Linux ...
Dalla man page di remove(2):
SYNOPSIS       
	#include <stdio.h>        
	int remove(const char *pathname);
DESCRIPTION       
	remove  deletes  a name from the filesystem.  It calls
	unlink for files, and rmdir for directories.
Credo che "remove" sia la funzione standard del C, unlink ( e rmdir ) siano
quelle di sistema di linux. Mi risultano tutte e tre POSIX
Newsgroup: it.comp.lang.c
Titolo: problemi di lettura file

Salve a tutti
il programma su cui sto lavorando svolge il semplice compito
di aprire in sequenza una serie di file di testo (size 1/2 Mb)
leggerne il contenuto ed effettuare in seguito alcune operazioni
standard di analisi dati.
Il problema nasce quando il numero dei file di input supera il
centinaio di unità. In questo caso (e solo in questo caso) il
programma si interrompe drammaticamente in fase di lettura.
Inizialmente credevo si trattasse di un problema di bufferizzazione,
ma anche aumentando la dimensione del buffer di lettura o utilizzando un
input non bufferizzato il problema persiste.
Qualcuno può aiutarmi?
grazie
luke
PS. OS: linux, Compilatore: gcc

> Qualcuno può aiutarmi?
difficile se non metti la parte di codice dove si verifica l'errore!
la cosa piu' probabile è aver sbagliato la dimensione di qualche 
variabile...
cyao Fra

 cyao Fra

 
[CUT]
non gestisci correttamente tutte le ipotesi che l'apertura dei file non
vada a buon fine:
qui verifichi che tutti e tre i descriptor siano NULL:
if (!f_qi && !f_qs && !f_ou)
e sulle righe successive verifichi che solo uno su tre sia NULL:
if (!f_qi && f_qs && f_ou)
else if (f_qi && !f_qs && f_ou)
else if (f_qi && f_qs && !f_ou)
cosa succede se due file non vengono aperti correttamente ?
Secondo me ottieni un segmentation fault quando vai a chiuderli qui:
fclose(f_qi); fclose(f_qs); fclose(f_ou);
in ogni caso specifica cosa intendi con " si interrompe drammaticamente in
fase di lettura", e poi prova a mettere qualcosa tipo
if( !f_qi || !f_qs || !f_ou )
{
	printf("ABORT file missing: %s %s %s\n",
		f_qi ? "" : f_qi_name,
		f_qs ? "" : f_qs_name,
		f_ou ? "" : f_ou_name );
	exit(9);
}
Ciao
Matic

 ha scritto nel messaggio
news:pan.2004.01.07....@hotmail.com...
