mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c
Titolo: char --> int

salve,
non riesco a risolvere questo problema!
Ho un testo char *text e so per esempio che dal 15esimo 
byte e' memorizzato un array di interi di n elementi.
Questo vorrei copiarlo in un array di n elementi di 
uint array del quale conosco il puntatore uint *poiarr
io pensavo di fare una cosa del genere 
memcpy(poiarr, text+15, n*4);
i valori in poiarr non sono corretti.... 
qual'e' il problema?
gli interi sono scritti come bit a partire dal bit piu significativo...
che sia big - little endian il problema?
grazie

 che sia big - little endian il problema?
Se non hai fatto l'errore sopra citato, allora la causa potrebbe essere
questa. Difficile dirlo senza vedere il codice.
Ad ogni modo dai una occhiata a questo esempio che compila e funziona su
PC-Intel con windows:
<CODE>
#include<stdio.h>
#include<memory.h>
#define NUM_TO_BYTES(n) (n&0x000000ff), \
                        ((n&0x0000ff00)>>8), \
                        ((n&0x00ff0000)>>16), \
                        ((n&0xff000000)>>24) 
 
char string[]={
     'I','l',' ','n','u','m','e','r','o',' ','e','\'',':','\0',
     NUM_TO_BYTES(178456214),NUM_TO_BYTES(33)
};
#define N 2
int main()
{
    const char *text = string;
    unsigned int array_ints[N] = {0};
    unsigned int *poiarr = array_ints;
    int i;
    printf("%s\n",text);
    memcpy(poiarr,text+14,N*sizeof(unsigned int));
    for(i=0; i<N; ++i){
        printf("%u\n",poiarr[i]);
    }
    return 0;
}
</CODE>
Ho usato i tuoi stessi nomi di var. I numeri in fondo alla stringa sono
solo 2... sono stato pigro!
Per convenienza li inserisco nella stringa con una macro.
In fine, per non corrompere la stringa, metto un \0 dove finiscono i
caratteri della stringa ed iniziano i numeri.
Spero questo esempio possa aiutarti.
Tommaso
P.S. non puoi risolvere il problema in un modo piu' pulito?
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG
Newsgroup: it.comp.lang.c
Titolo: ncurses -> incomprensione riguardo variabile

Sto seguendo l'HOWTO delle ncurses per carpirne i più profondi segreti, ed 
in un codice di esempio ho incontrato una dichiarazione (ed uso) di una 
variabile che non comprendo
si tratta di 
int goto_prev= FALSE, y, x;
{   int ch, prev;
    int goto_prev = FALSE, y, x;    
    [....]
 
    prev = EOF;
    while((ch = fgetc(fp)) != EOF)
    {    if(prev == '/' && ch == '*')    
                /* If it is / and * then only switch bold on */   
        {  attron(A_BOLD);
           goto_prev = TRUE;  /*Go to previous char / and print it in BOLD*/
        }
        if(goto_prev == TRUE)
        {    getyx(stdscr, y, x);
            move(y, x - 1);
            printw("%c%c", '/', ch); /* The actual printing is done here */
            goto_prev = FALSE;       /* Set it to FALSE or every thing from
                                      * here will be / */
        }
Non capisco perché ad una variabile int vengano dati più valori, separati da 
virgola, né perché scrivendo
goto_prev=TRUE;
il cursore dovrebbe andare indietro
Grazie per le eventuali delucidazioni,
Riccardo

 il cursore dovrebbe andare indietro
il cursore va indietro *move(y, x-1)* nel blocco dell'if la cui condizione
e' goto_prev=TRUE

goto_prev, y e x. La prima viene inizializzata a TRUE
Mi sai che hai fatto un errore di scrittura: *dichiarate* tre
variabili intere, inizializzata la prima a true :)
-- 
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."

 goto_prev, y e x. La prima viene inizializzata a TRUE
Non mi sono mai sentito così stupido.
La prossima volta ci penserò 10 volte prima di chiedere (per fortuna almeno 
il resto delle richieste mi serviva davvero).
Ti ringrazio,
Riccardo

 variabili intere, inizializzata la prima a true :)
Infatti... grazie mille!

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

salve...
potete darmi un sito dove ci sia documentazione sullo standard c( e
magari anche qualche altro linguaggio) ?
Grassie mille


Per l'ISO C: draft prima della stesura dello standard definitivo (quello si
paga)
http://std.dkuug.dk/JTC1/SC22/WG14/www/docs/n897.pdf
cool site:
http://www.yahoo.it
http://www.comunedasa.it
http://www.aruba.it
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (
http://www.grisoft.com
).
Version: 6.0.478 / Virus Database: 275 - Release Date: 06/05/03
Newsgroup: it.comp.lang.c
Titolo: accodare caratteri ad una stringa

Salve a tutti,
sto scrivendo questo codicillo, ma non mi funziona
#include <stdio.h>
#include <malloc.h>
int main(void)
{
    char* testo = (char*)malloc(sizeof(char));
    int allocati = sizeof(char);
    *testo += 'c';
    testo = realloc(testo, allocati+sizeof(char));
    allocati += allocati+sizeof(char);
    *testo += 'i';
    testo = realloc(testo, allocati+sizeof(char));
    allocati += allocati+sizeof(char);
    *testo += 'a';
    testo = realloc(testo, allocati+sizeof(char));
    allocati += allocati+sizeof(char);
    *testo += 'o';
    testo = realloc(testo, allocati+sizeof(char));
    allocati += allocati+sizeof(char);
    *testo += '\n';
    printf("%s", testo);
    return 1;
}
.... non riesco a capire perche'
Grazie infinite

 .... non riesco a capire perche'
prova di leggere un manuale di C invece di provare a caso.
Tommaso
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 wrote 
ho dimenticato di dire che il modo in cui usi realloc e' pure sbagliato.


 ho dimenticato di dire che il modo in cui usi realloc e' pure sbagliato.
Se a quanto detto potessi darmi delle motivazioni leggermente piu' 
approfondite ti ringrazio.
(sia per questo che l'altro post)
Grazie.
saluti

 
Cosi' funziona .... ma dimmi, sbaglio ancora concettualmente da qualche 
parte ?
Grazie, ciao
#include <malloc.h>
#include <stdio.h>
int main(void)
{
    char* testo;
    int numchar=0;
    numchar++;
    testo = realloc(testo, sizeof(char)*numchar);
    testo[numchar-1]='c';
    numchar++;
    testo = realloc(testo, sizeof(char)*numchar);
    testo[numchar-1]='i';
    numchar++;
    testo = realloc(testo, sizeof(char)*numchar);
    testo[numchar-1]='a';
    numchar++;
    testo = realloc(testo, sizeof(char)*numchar);
    testo[numchar-1]='o';
    numchar++;
    testo = realloc(testo, sizeof(char)*numchar);
    testo[numchar-1]='\n';
    numchar++;
    testo = realloc(testo, sizeof(char)*numchar);
    testo[numchar-1]='\0';


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

Il mio problema e' che devo leggere da un socket e che se non ci sono dati
in coda il programma deve passare oltre mentre la read mi blocca
l'esecuzione .
Posto che non posso cambiare processo,esiste una  funzione di IO che fa al
caso mio?
Grazie
Claudia

On Thu, 1 Jun 2000 20:32:21 +0200, "Claudia" <CIAO...@PIPPO.mil>
wrote:

Direi di si, si chiama select() :) Questa funzione ha come parametri
dei SET di socket (uno per gli input, uno per gli output ed uno
per le eccezioni), e ti permette di realizzare un sistema di
attesa non deterministica, non bloccante sui socket.
In pratica, ti permette di monitorare delle serie di socket, 
segnalando quando ci sono dati da leggere, dati da
scrivere od eccezioni. :) Cmq per una spiegazione piu'
dettagliata ti rimando a 'man select'. :)
Ciao,
                    __
         Fabio   " '- nowDruid "  Franchello
                  ---'---------
          ---  
snow...@tiscalinet.it
  ---
Newsgroup: it.comp.lang.c
Titolo: Espressioni Regolari in C

Esiste una qualche libreria che riproduce le Espressioni Regolari del Perl
in
C?
Se si dove posso trovarla?
Grazie e ciao
Alessio "Gazza" Galli

 in C? Se si dove posso trovarla?
Le funzioni regcomp() e regexec()--e correlate--fanno parte dello 
standard POSIX.2, per cui le trovi in tutte le librerie che seguono 
questo standard (per esempio, la libc di GNU, le quali sono dotate anche 
di un'ampia manualistica d'utilizzo).
-- 
Baci,
Mony

 ha scritto nel messaggio
news:a9e3bt$aji$1...@newsreader.mailgate.org...

C'è una possibilità di usare queste librerie anche con Visual C++ (sono a
lavorare e devo usare questo).
ciao
Alessio "Gazza" Galli

 lavorare e devo usare questo).
Mai provato, pero` quanto in proposito al seguente link
 
http://www.w3.org/INSTALL.html#Windows
potrebbe esserti d'aiuto.
-- 
Baci,
Mony

 ha scritto nel messaggio
news:a9fif4$k19$1...@newsreader.mailgate.org...

Thanks
ciao
Alessio "Gazza" Galli

Newsgroup: it.comp.lang.c
Titolo: Problema con Cygnus b19

 gcc -o nomefile.exe nomefile.c
non ottengo errori ma, nella fase di linking il linker comunica che non
riesce a tradurre i riferimenti a certe funzioni (che poi sono quelle
della API di windows). Premetto che l'esempio è preso da un libro sulla
materia in cui i programmi sono trascritti interamente.
Ringrazio chiunque abbia la cortesia di soffermarsi su questo problema.
--
###########################################################
# Dr. Marco Lazzeri                                       #
# ARPA - SMR Emilia-Romagna-V.le Silvani-Bologna          #
# ADGB-Dipartimento di Fisica-V.le B. Pichat, 6/2-Bologna #
# Tel: 051-6305215  051-284398                            #
###########################################################

---------------------------------------------------------<

Newsgroup: it.comp.lang.c
Titolo: EXE senza dll (borland 5.0 c++)

Salve,
ho un compilatore borland 5.0 c++ e vorrei che quando creo il .exe
per progetti con main 'WINMAIN' non abbia link con le dll del borland...
Qualcuno di voi sa come posso fare??
grazie :)
--------------------------------
Inviato via 
http://usenet.iol.it

 Qualcuno di voi sa come posso fare??
Settare nel progetto la versione del eseguibile con Static... (per default e
dynamic).
<pedantic mode=on>
'WINMAIN' non mi sembra che esisti. Intendi 'WinMain'?
Tra altro si chiama 'entry point'...:
quindi: "per progetti con entry point 'WinMain'"
</pedantic>
:-)
J.
Newsgroup: it.comp.lang.c
Titolo: vettore di puntatori a carattere

ciao a tutti,
volevo chiedervi.. com'è che quando cerco di acquisire delle stringhe con 
una fgets per un vettore di puntatori a caratteri mi da un segfault?
mi spiego meglio..
char *lineptr[100]
[....]
for(i=0; fgets(line[i], 100, stdin)>0; ++i)
        ;
[....]
immediatamente dopo l'inserimento della prima stringa va in segmentation 
fault:-(

for(i=0; fgets(line[i], 100, stdin)>0; ++i && i<100)
        ;
scusate....

 fault:-(
Mi sa che dovresti allocare la memoria per la stringa prima di usare l'fgets
(usa il malloc...)
lineptr[i]=malloc(n*sizeof(char));
ciao
Enrico
--
Webmaster della Pagina NON Ufficiale del SonyCRX100
SonyCRX120,  SonyCRX140E/S, SonyCRX100EX, HP8100
HP8200, HP9100 & HP9200
http://www.freeweb.org/computer/SonyCRX100/

char *lineptr[100]
dichiari un vettore di 100 puntatori a char ma non riservi alcuna
memoria per le stringhe da allocare .

 wrote:
: ciao a tutti,

: char *lineptr[100]
: [....]


perche' non e' allocato...
cosi' tu hai allocato un array di 100 puntatori a zone non ancora
allocate.
prima di ogni azione su line[i] dovresti fare line[i] = malloc(...)
bye

 scusate....
hai sbagliato di nuovo.
for(i=0; (fgets(line[i], 100, stdin)>0) && (i<100); ++i)
E cmq non hai allocato lo spazio per i 100 vettori di char, hai solo un
array di 100 puntatori a char.
-- 
 Ciao, Bianco.
 Reply to luca.bianco (at) 
tiscalinet.it

Newsgroup: it.comp.lang.c
Titolo: scrittura su file

devo fare una procedura che oltre a creare un grafo crei un file txt con
alcuni dati del grafo. Il problema č che il nome del file deve essere creato
in base ad alcuni parametri ovvero il numero dei nodi, il numero degli archi
e la radice. Io avevo pensato a questo:
  char NomeFile[100] = "grafo_";
 
 
  itoa(n,nodi,10);
  itoa(m, archi,10);
  itoa(rad, radice,10);
   strcat (NomeFile, nodi);
  strcat (NomeFile,"_");
  strcat (NomeFile, archi);
  strcat (NomeFile, "_");
  strcat (NomeFile, radice);
  strcat (NomeFile, "_");
 
  strcat (NomeFile, ".txt");
ma al mio insegnante non piace ed ha detto di usare una fprintf. Ora io con
la fprintf so scrivere all'interno di un file ma non il suo nome. Come si fa
a usarla per scrivere il nome del file? Se non si potesse c'č un modo un po'
piů pratico di quello da me usato?
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 ma al mio insegnante non piace ed ha detto di usare una fprintf. 
Il tuo professore ha sicuramente citato sprintf, non fprintf.
L'uso di sprintf() č banale, sostanzialmente č una printf() 
indirizzata su una stringa.
man sprintf
Newsgroup: it.comp.lang.c
Titolo: Strcpy: sì o no?

Ciao a tutti.
In un esempio presente sulle dispense di un corso che seguo 
all'Universitą, mi ritrovo il seguente frammento di codice:
ptr = strtok(line," \t");
i=0;
while (ptr != NULL) {
 arglist[i] = realloc(arglist[i],strlen(ptr)+1);
 strcpy(arglist[i],ptr);
 ptr = strtok(NULL," \t");
 i++;
}
 
Vorrei sostituirlo con:
ptr = strtok(line," \t");
i=0;
while (ptr != NULL) {
 arglist[i] = ptr;
 ptr = strtok(NULL," \t");
 i++;
}
Vorrei sapere se una simile scelta presenta degli inconvenienti. 
Dimenticavo le dichiarazioni. 
char line[MAX_LINE];
char *arglist[MAX_TOKEN];
char *ptr;
int i;    
Grazie e un saluto a tutti.
Bizio.

 Vorrei sapere se una simile scelta presenta degli inconvenienti. 
Direi di no, ma dipende come sempre da cosa avviene nel resto del codice! :)
In linea di massima la tua versione va bene se devi usare il tutto in 
"sola lettura" cioe' se line non cambia e se non devi manipolare il 
contenuto dei vari arglist[].
ciao
Giacomo

Newsgroup: it.comp.lang.c
Titolo: AIUTO DJGPP

Salve ho scaricato da poco il compilatore djgpp, ma quando avdo a
compilare dei sorgenti mi da il seguente errore INSTALLATION PROBLEM,
CANNOT EXEC 'AS': NO SUCH FILE OR DIRECTORY (ENOENT) qualcuno mi sa
dire cosa posso fare? GRAZIE MILLE!!

mend...@iol.it
 wrote:

Nella directory \djgpp\bin\ c'e' AS.EXE? Se non c'e' lo devi
installare, lo trovi nel modulo BNUxxxB.ZIP (xxx = numeri che
identificano la versione). Se c'e', hai aggiunto
set PATH=C:\DJGPP\BIN;%PATH%
set DJGPP=C:\DJGPP\DJGPP.ENV
al file autoexec.bat? (NOTA C:\DJGPP\ e' la directory nella quale e'
installato DJGPP percio' se hai installato in una directory diversa
devi cambiare le due "set"). Se il tuo problema non e' questo non so
come aiutarti.
Ciao, Obelix
-- 
Per rispondermi via e-mail togli .pippo
Newsgroup: it.comp.lang.c
Titolo: Matrice dinamica...

Ciao a tutti, 
come posso dichiarare una matrice hce deve essere dinamica???
MI spiego, la grandezza della matrice quadrata che devo costruire, no è
statica, ma deve essere specificata dall'utente con una scanf.
Ho provato a fare la scanf e poi a dichiararmi (e costruirmi) la matrice, 
ma non funziona!
In java potevo fare con il comando new, in C come si fa???
grazie
Andrea

"andrea" wrote..:

Devi usare malloc.
Es:
int *arr, dimensione;
scanf("%d", &dimensione);
arr = (int *) malloc (sizeof (int) * dimensione);
Dopo di che potrai lavorare su arr[dimensione].
Ovviamente si presume che la matrice sia di interi.
Come al solito resto in attesa delle eventuali correzioni dei "veci" del ng
:)
Deep

Come al solito resto in attesa delle eventuali correzioni dei "veci" del ng
   Sicuramente ti diranno di non castare il risultato di malloc. :)
-- 
S.L.

    Sicuramente ti diranno di non castare il risultato di malloc. :)
Dopo una veloce ricerca con google ho letto perchè è preferibile non
castare. Chiedo venia e ringrazio :)
Deep

 allocato nell'esempio).
Ehm.... chiedo venia, avevo dormito poco e ho scritto cazzate ^^'
Sorry

Ok, grazie a tutti e due per l'aiuto.
Spero di non cimbinare pasticci con questi benedetti puntatori (soprattutto
quando trovo qualcosa tipo **pt entro verametne nel panico! ;-)  (
Ciao e grazie
Andrea
Newsgroup: it.comp.lang.c
Titolo: Output di char su schermo

Ho queste righe di codice in una function:
void risposta(void)
[...]
while ((c = sgetch()) != EOF)   /* legge un byte da seriale */
     {
     putchar(c);
     }
In questa versione, non mi compare nulla di nulla sullo schermo, il ciclo
while non viene proprio eseguito. Leggiucchiando un pò in giro, faccio
questa modifica:
while(mark == 0)
{
        while ((c = sgetch()) != EOF)
         {
         putchar(c);
        }
}
Così, invece, riesco a leggere sullo schermo ciò che mi interessa ma ci sono
due osservazioni da fare:
- Cosa fa quel while esterno che a prima vista sembra quasi ridondante?
- Siccome la condizione di terminazione del while esterno non è mai
soddisfatta, non esce mai.
Allora faccio la cosa più normale (almeno come la vedo io):
while(mark == 0)
{
        while ((c = sgetch()) != EOF)
         {
         putchar(c);
        }
mark = 1;
}
Anche in quest'ultimo caso, il while più interno non viene proprio
eseguito... mah!

Lo so che questa non è la risposta che tiu aspetti,
ma potrebbe essere che ((c = sgetch()) == EOF)?
 
--------------------------------
Inviato via 
http://usenet.libero.it

Newsgroup: it.comp.lang.c
Titolo: problema insolito in un while

Salve a tutto il ng.
avendo ad esempio un ciclo del tipo
while(!kbhit())
{
fai qualcosa
}
e diciamo che questo qualcosa dura piu' di 20 secondi ad ogni ciclo (essendo
una specie di presentazione animata)...come posso fare secondo voi a
interrompere il ciclo non appena premo un tasto senza attendere la fine dei
20 secondi prima che faccia effettivamente il controllo nel while?
cioe'
while(!kbhit())
{
dopo 1 secondo che parte la presentazione premo in pulsante e vorrei che
uscisse dal ciclo...
si puo' fare...o bisogna per forza attendere i rimanenti 19 secondi ?
fai qualcosa (durata 20 secondi)
}
grazie...

E' una soluzione un po rude ma prova a disseminare nel tuo codice che dura
20 secondi l' istruzione
if (kbhit()) break
prova e fammi sapere!!!


Sembra che usi DOS... allora prova a fare qualcosa con la funzione ctrlbrk
in DOS.H
J.

 ha scritto nel
messaggio news:P91m7.4739$i_1.1...@news.infostrada.it...

Grazie e' perfetta...ma
come si fa ad impostare la stessa funzione per un qualsiasi tasto e non solo
per ctrlbrk?

 wrote in message
news:mX9m7.92567$vC1.1...@news1.tin.it...

Questo diventa un casino (per dire poco). Dovresti scrivere un modulo
(in parte assembler) che intercetta l'interrupt 9 e genera un altro
l'interrupt per
interrompere come il ctrlbrk.  Prova a trovare su Simtel sotto MSDOS
qualcosa di gia' fatto (non so neanche se ancora esiste)...
Si possono anche trovare dei TSR (Terminate Stay Resident) per questa
problematica. Ma stiamo andando troppo OT...
:-)

secondo me la mia soluzione anche se molto ma molto grezza rimane la piu
semplice!
Scusate la presunzione!

 Scusate la presunzione!
Dipende dalla complessita' di quello che sta in questi 20 secondi...
Se poi sono funzioni libreria che occupano questo spazio tempo
allora non si po' scendere a meno dei interrupt.
Chiaro che qualche 'if (kbhit()) break/return;' piazzato bene fa il suo...
:-)
Newsgroup: it.comp.lang.c
Titolo: Uso di char*...

Ciao a tutti, ho una questione semplice, prendiamo come esempio:
int main(void)
    {
    char *aString;
    aString = (char*)malloc(sizeof aString);
    printf("\nInserisci una parola:\n");
    scanf("%s", aString);
    }
Con questa funzione le lettere lette da input da tastiera vengono
messe nel modo seguente:
- la prima lettera viene messa nella locazione puntata da aString
- le lettere successive vengono messe una dopo l'altra nelle
locazioni di memoria che seguono aString
Quello che mi chiedo è:
è lecita una "struttura" del genere? Non c'è il rischio che
un'altra procedura (o il sitema operativo stesso) vada a
sovrascrivere le locazioni di memoria comprese tra la prima lettera
e il \0 finale? Non si corre il rischio che se la parola inserita è
molto lunga, alcune delle sue lettere vadano a sovrascrivere aree
di memoria già in uso da parte dil altri processi?
Grazie e ciao
Ale

 ha scritto nel messaggio
news:K1Iw6.4676$E01.2...@news.infostrada.it...


 ha scritto nel messaggio
news:K1Iw6.4676$E01.2...@news.infostrada.it...

No!
la malloc serve proprio a marcare "riservata" quella parte di memoria!

 di memoria già in uso da parte dil altri processi?
Infatti, devi allocare lo spazio sufficiente a contenere la tua
stringa. Ti posto un esempio:
#include <stdlib.h>
#include <stdio.h>
int main()
{
    int lungh;
    char * stringa;
    printf("Inserisci la lunghezza: ");
    scanf("%d", &lungh);
    /* Svuotamento buffer di input */
    while (getchar()!='\n');
    /* Allocazione dinamica della stringa: 'lungh' caratteri
     * piu' un altro carattere per il terminatore '\0'
     */
    stringa = malloc ((sizeof (char))*(lungh+1));
    printf("Inserisci la stringa: ");
    gets(stringa);
    puts(stringa);
    return 0;
}
Ciao
--
Leo-Panda
email: 
leo-...@libero.it
ICQ#: 105550412

Insomma, un utilizzo come nell'esempio č altamente scorretto se non
ho capito male! Eppure l'ho usato in questo modo con stringhe
piuttosto lunghe e non mi ha mai dato problemi; dipende dal fatto
che č difficile che un processo vada a sovrascrivere proprio quella
zona di memoria?
Ciao e grazie per le risposte

 ha scritto nel messaggio
news:nBNw6.7656$E01.8...@news.infostrada.it...

Newsgroup: it.comp.lang.c
Titolo: Stampe in Bkground

Ciao a tutti,
scusatemi sono nuovo del NG e conosco pochissimo il "C"...
Ho un problema:
devo realizzare per un cliente una piccola procedura per stampare un file
che giri di nascosto automaticamente...cioe'
lui salva un file contenente dei codici con un programma gia in suo possesso
e vuole la stampa su tabulato del file dopo il salvataggio: dato che non
posso modificare il programa perche' non mio vorrei realizzare un TSR che si
occupi di vedere quando il file viene salvato e lo stampi.
La stampa la predispongo in Clipper, ma il programma di rilevamento devo
farlo in C...
chi mi sa dire come fare o qlmeno dove reperire uno script appropriato?
Grazie

che giri di nascosto automaticamente...cioe'
Su usi un sistema MS_DOS allora credo che il TSR sia indispensabile e
allora non posso aiutarti (la scrittura di programmi TSR non e' cosi
semplice come si potrebbe immaginare).
Se il tuo sistema invece e' windows puoi scrivere un programma console
che rimanendo sempre in esecuzione verifica costantemente ogni nuovo
aggiormento del file salvato e quindi lo stampa .
Il problema e' pero vedere se la tua stampante supporta la scrittura
del file in oggetto senza dover passare attraverso i driver di
windows.
Per risolvere ogni problema ti conviene fare un piccolo programma
windows GUI che mantenuto nasosto faccia esattamente quello che
richiedi .
ciao


Beh, ma anche se lo fai come programma console, puoi comunque utilizzare l'SDK
di windows, basta includere "windows.h"...
BYEZZZZZZZZZZ

 ha scritto nel messaggio
news:3AD05B3F...@tin.it...


Newsgroup: it.comp.lang.c
Titolo: Libreria "C" per protocolli FTP e REXEC

Dovrei sviluppare una piccola applicazione in "C" che dovrebbe 
comunicare con un server remoto (un AS-400) tramite i protocolli FTP e 
REXEC. In pratica dovrei spedire/ricevere file con l'FTP ed eseguire 
comandi remoti con il protocollo REXEC.
Questa applicazione (solo il lato "client" !) che devo sviluppare 
dovrebbe essere portabile su Windows/Linux.
E qui sta il problema ! Che librerie (portabili quindi) esistono per 
gestire FTP ed REXEC in linguaggio "C" ?
Ne conosco una, di nome, la libwww sviluppata dal w3c ma da quanto ho 
visto lo sviluppo e' stato bloccato e comunque non la conosco.
Non so davvero cosa fare. Un aiuto/consiglio mi sarebbe molto utile.
Grazie.

 REXEC. In pratica dovrei spedire/ricevere file con l'FTP ed eseguire 
[cut]
Come al solito nessuno mi caga ...


forse perche' nessuno ne conosce ;-)) hai provato a leggerti l'rfc 959 e a
smanettare un po' con i socket ??
ciao ..
-- 
#include <stdio.h>
int main(void){char c[]={10,65,110,116,111,110,105,111,32,98,97,114,98,111,110,
101,32,60,104,105,110,100,101,109,105,116,64,116,105,115,99,97,108,105,110,101,
116,46,105,116,62,10,10,0};printf("%s",c);return 0;}
Newsgroup: it.comp.lang.c
Titolo: Delucidazioni operatori incremento-decremento

salve a tutti
Premetto che sono un neofita del Linguaggio C , quindi mi scuso
anticipo.
Vorrei alcuni chiarimenti riguardo l'utilizzo degli operatori di
incrememento / decremento .
CASO 1
Se :
x = 15 y=3
x+=++y   ( in questo caso y vale 4 ed il risultato è : 19 )
.........
CASO 2
Se :
x = 15 y=3
x+=y++   ( in questo caso y vale sempre 4 ma il risultato è : 18 )
Chiedo la spiegazione di quest'ultimo . Se l'operatore di incremento ha
la funzione di incrementare la variabile di una unità ( in effetti y
in ambedue i casi ha valore 4 ) perche in CASO 2 il risultato è
differente?
Cio' che non comprendo è l'utilità dell'uso dell'operatore
incremento/decremento POSTFISSO se il risultato NON CAMBIA.
Grazie in anticipo

incremento/decremento POSTFISSO se il risultato NON CAMBIA.
Quello che non cambia è il valore di y dopo l'assegnamento.
Viene usato per motivi di efficienza. Il compilatore potrebbe
trarre giovamento dall'utilizzo di una istruzione del genere.
Potrebbe tradurre tale costrutto con una semplice istruzione
assembler che nel caso di
y = y+1;
non riuscirebbe a fare a causa dell'utilizzo di criteri di traduzione più
generali.
--
Giorgio Silvestri
DSP/Embedded/Real Time OS   Software Engineer
Newsgroup: it.comp.lang.c
Titolo: Visualizzare errore in caso di inserimento carattere

Salve ragazzi.
Ho un problema che avete affrontato spesso in questo NG ma tra le tante
soluzioni diverse non ho capito quale sia la più elegante ed efficiente per
il mio caso
Il problema è stupido, devo semplicemente prelevare un valore che sia intero
(positivo) dalla tastiera e assegnarlo ad una variabile (che in realtà mi
servirà per stabilire "quante volte devo fare una determinata cosa", ossia
"a che punto il contatore si deve fermare".
E poi naturalmente devo gestire tutti i casi di errore, ossia se il valore
inserito è un carattere invece di una cifra oppure se inserisco tipo dei
valori "misti" tipo *11df2*.
Senza considerare i casi di errore, avevo utilizzato scanf per prendere il
valore da tastiera,
printf("Inserire numero pacchetti da inviare\n");
  int valCounter;
  scanf("%i", & valCounter);
 ma mi è sembrato di capire che ci sono funzioni più pratiche per eseguire il
controllo sul dato inserito e comunicare con printf un messaggio di errore,
facendo poi reinserire un valore compatibile.
Sapete suggerirmi del codice?
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 facendo poi reinserire un valore compatibile.
se leggi l'inglese, vedi qui i problemi della scanf:
http://c-faq.com/stdio/scanfprobs.html
Per leggere l'input da tastiera e' meglio se usi la fgets() e quindi 
dopo una sscanf() (nb. la doppia s) sul buffer restituito - ma nel tuo 
caso specifico potrebbe anche bastare un atoi().
Per un controllo ancora piu' pignolo, potresti anche aver la necessita' 
di controllare se l'input sia interamente costituito da caratteri che 
indichino numeri validi, che non superino poi i limiti di un int, ecc...
Infine controlli se il valore dell'int recuperato e' accettabile per il 
tuo programma.
Ciao
-- 
Cybertoldo
Per rispondermi via email, sostituisci moc.liamg con 
gmail.com

 caso specifico potrebbe anche bastare un atoi().
Meglio di atoi() è strtol()/strtoul() & C.
La prima non ha controllo d'errore.
-- 
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: problemino con djgpp e grx23

salve a tutti,
ho scaricato da qualche giorno i file grx23.zip e qualche altro che djgpp
consigliava per la grafica.
ho provato a far partire alcuni programi di prova tipo  linetest.c o simili
che stanno nella cartella C:\djgpp\grx23\test e ho provato a compilarli (con
ALT+F9) e tutto e' andato bene, quando poi  ho provato a creare l'eseguibile
per vedere cosa fosse mi ha trovato un sacco di errori del tipo
undefined reference to 'GrFilledBox'
undefined reference to 'GrLine'
e cosi' via, qualcuno sa che devo fare? se mi sono dimenticato di scarcare
qualche cosa oppure se devo spostare qualche file da qualche parte o
aggiungere qualche path?
grazie mille a tutte le anime pie che avranno la bonta' di aiutare un povero
viandante in difficolta' nelle tortuose vie della programmazione

 
Non ho mai provato grx ma in generale bisogna:
1. Se la distribuzione contiene solo i sorgenti, compilare con il makefile
fornito
2. Se la distribuzione e le procedure di installazione non mettono i file
.a nella directory %DJGPP%\lib, spostarli manualmente o lasciarli dove sono
ma aggiungere la directory nel comando di compilazione (vedi punto 3.1)
3. Da RHIDE:
3.1 se le nuove librerie non sono in %DJGPP%\lib aggiungere i nuovi path da
menu options->directories->libreries
3.2 aggiungere la nuova libreria (il nome senza estensione e senza prefisso
lib - grx) da menu options->libraries
Dopo aver installato, prova a cercare i file *.a (sara' qualcosa tipo
c:\djgpp\grx23\lib\libgrx.a) e una volta identificati i file segui la
procedura. Le impostazioni di RHIDE corrispondono alle opzioni del gcc -L e
-l per impostare il path di ricerca e le librerie (vedi info)

Newsgroup: it.comp.lang.c
Titolo: Matrici sparse

Dove trovare un'implementazione per matrici quadrate sparse nelle quali
pero' non si sa in anticipo ne' quanti elementi per riga sono diversi da
0
ne' dove sono posizionati?
La matrice e' simmetrica e gli elementi della diagonale principale sono
tutti diversi a 0.
Grazie.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 wrote:
[CUT]
forse questa č meglio se la posti su it.scienza.informatica.
Ciao,
-- 
+--------+ ASCII ribbon campaign ( )
|  kral  |  - against HTML email  X
+--------+              & vCards / \

 
Un'implementazione per fare cosa? somma, prodotti, autovalori...??
dai un'occhiata a Netlib (
www.netlib.org
)

 Grazie.
Scarica questo:
http://informatica.unica.it/didonline/strutture/lecture04.pdf
Ciao
Newsgroup: it.comp.lang.c
Titolo: copia di array

coma si fa a copiare un array di interi dentro un altro array di interi
della
stessa dimensione?
con strcpy non fa perche' ci vuole un char*, devo per forza copiare
elemento per elemento?

Giovanni,

  memcpy() e` la risposta hai tuoi problemi: RTFM.
	$ man memcpy
	Alla prossima,
		Marco

                 Marco
graaaazie
Newsgroup: it.comp.lang.c
Titolo: DOS interrupt

Devo realizzare un programmino, magari TSR, che ascolti l'interrupt della
stampante del DOS, qualcuno sa indicarmi dove trovare documentazione o
esempi?
Grazie, Luciano    


Guarda l'interrupt list di Ralf Brown.
http://www.cs.cmu.edu/~ralf/
E' un inizio.
Ciao.
-- 
     (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: scanf: da matti

#include <stdio.h>
main()
{
    char pippo;
    do
    {
        scanf("%c", &pippo);
    } while (pippo!='x');
}
Mi sapete spiegare perché quando eseguo questo codice col debugger vedo che
a volte scanf legge il valore '\n' senza darmi il prompt, da sola, senza
dire nulla a nessuno?
Grazie.

 dire nulla a nessuno?
Perche' scanf() legge dal buffer di tastiera (come tutte
le funzioni standard di I/O).  Quando batti un carattere
e dai invio, nel buffer di tastiera ci vanno a finire il
carattere digitato e la sequenza di a capo '\n'.
La prima volta, scanf() trova il buffer di tastiera vuoto,
allora chiede all'utente di metterci dentro qualcosa.
L'utente batte un carattere e preme invio.
Nel buffer ci sono il carattere e '\n'.
La funzione la prima volta legge il carattere, la seconda
legge '\n'.  Per un input corretto, bisogna svuotare il
buffer di tastiera tra una scanf() e l'altra e questo si
puo' fare con :
while (getchar() != '\n');
dopo ogni scanf().
Comunque, scanf() e' una funzione da evitare, anche
perche' non ha controlli sul numero massimo di caratteri
letti.  Meglio usare fgets().
-- 
Posted from  [80.105.34.80] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG
Newsgroup: it.comp.lang.c
Titolo: Dubbio sui Linker

Ciao a tutto il newsgroup!
Ho un piccolo dubbio che vorrei chiarire.
Mettiamo il caso che un mio programma faccia uso di una libreria 
statica; in fase di "linkaggio" il linker includerà nell'eseguibile 
finale tutto il codice della libreria statica oppure includerà solo le 
porzioni di cui effettivamente il mio programma fa uso?
Quello che in pratica voglio sapere è: mi conviene scrivere una libreria 
multipurpose che magari raggiunga una certa dimensione?Questa dimensione 
influirà su quella dell'eseguibile finale anche se utilizzo poche 
funzioni di questa libreria?
Grazie in anticipo a chi risponderà.
Ciao!

funzioni di questa libreria?
In linea di massima non sbaglieresti, in ogni caso potrai sempre
decidere di dividere la libreria in piu' parti per ottimizzare
maggiormente lo spazio occupato.
---
acc(at)
libero.it

Grazie tante del chiarimento
Newsgroup: it.comp.lang.c
Titolo: Aiuto

Salve a tutti, non sono molto esperto in programmazione ed ho 
un problema che non riesco a risolvere: il seguente programmino 
non mi restituisce il risultato voluto.
#include <stdio.h>
#define SIZE    10;
#define FUDGE   SIZE -2;
int main()
{
    int size;
    size = FUDGE;
    printf("Size is %d\n", size);
    return (0);
}
C'è qualcuno che mi vuole spiegare cosa non funziona?
Grazie.
-- 
Posted from 
relay.it.net
 [151.1.1.6] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Grazie.

Newsgroup: it.comp.lang.c
Titolo: Aiuto, come lo faccio?

Scrivete un programma che legga due interi e determini e visualizzi se
il primo sia un multiplo del secondo. (Suggerimento: usate l'operatore
modulo.)
io ho fatto cosě:
#include <stdio.h>
int main()
{
 int a, b;
 printf("Inserisci valore a: ");
 scanf("%d", &a);
 printf("Inserisci valore b: ");
 scanf("%d", &b);
 if (b % 2)
  printf("Il primo valore %d inserito e' multiplo a %d\n", a, b);
 else
  printf("Il primo valore %d immesso non e' multiplo a %d\n", a, b);
 return 0;
}
ma non funziona correttamente, cosa sbaglio? con il modulo
m'impiccio!!
grazie.

  if (b % 2)
qui penso tu debba inserire b%a
o al piů a%b se devi fareil primo diviso  il secondo!!!


 [snip]
L'operatore % (modulo), per a%b, ti restituisce il resto della
divisione a/b.
Se, dopo aver diviso il primo numero per il secondo, il resto č zero,
allora il primo numero č un multiplo del secondo.
In tutto questo discorso, l'operazione a%2 che hai scritto tu (che non
fa altro che darti uno se a č dispari, e zero se č pari) non c'entra
niente...
by LjL
ljl...@tiscalinet.it

Newsgroup: it.comp.lang.c
Titolo: Problema con i comandi di input bufferizzati

Salve a tutto il NG, volevo chiedervi una spiegazione su una cosa un po 
strana che mi succede.
Se compilo con Dev-C++ 4.9.9.2 questo codice tutto funziona; se lo compilo 
con gcc 4.1.1 con una mandriva 2007 , dopo il 4° char inserito esce dal 
ciclo di introduzione dati a continua sampando i 4 char introdotti, senza 
altri messaggi o errori......
sapete darmi qulche risposta .... ????
grazie comunque ciao a tutti
daniele
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
  char array[7];
  char ch;
  int i;
  puts(" ========  introduzione dati =========");
  for(i=0; i<= 6; i++){
           fflush(stdin);
           scanf("%c",&array[i]);
          }
  puts(" ========  stampa dati =========");
  for(i=0; i<= 6; i++){
           printf("%c",array[i]);
          }
  printf("\n\n\n");
  system("PAUSE");
  return 0;
}

            scanf("%c",&array[i]);
Sulla scanf "bufferizzata" ne abbiamo discusso recentemente dai 
un'occhiata a questo thread per farti un'idea:
http://groups.google.com/group/it.comp.lang.c/browse_frm/thread/87cb063925d204c6/dd6bf4c33209fee1?hl=en&tvc=1&q=
"programma+caratteri+non+funzionante"#dd6bf4c33209fee1
(se il link fosse tagliato, cerca con Google:
   "programma caratteri non funzionante. help please!"
nel gruppo it.comp.lang.c)
Remo.D

           scanf("%c",&array[i]);
Svuota il buffer di tastiera tra una scanf() e l'altra con un:
while (getchar() != '\n')
  ;
Newsgroup: it.comp.lang.c
Titolo: librerie

ciao NG,
mentre provavo a ricompilare alcuni comandi della shell, 
mi sono accorto che alcune librerie non le ho
(ad esempio 
config.h: No such file or directory
pathmax.h: No such file or directory
xalloc.h: No such file or directory
closeout.h: No such file or directory
version-etc.h: No such file or directory
)
ma mancano anche le conio.h e la ncurses.h
ho installato la slackware con i tool di sviluppo, ma a
quanto vedo, alcune cose non ci sono.
visto che il gcc ce l'ho, COSA devo cercare? ovvero: cosa manca?
ciao a tutti
-- 
By_Baitch
"Live Your Life!" (Ring ain't a jail)
http://utenti.tripod.it/baitch

 ciao a tutti
ciao
Matic

Newsgroup: it.comp.lang.c
Titolo: lettura dati da disco

Domanda: Come posso fare per leggere i dati contenuti nel disco rigido
indirizzandoli per numero di settore e offset?
grazie
    Nemo Fox

 indirizzandoli per numero di settore e offset?
Con quale sistema operativo?
-- 
Francesco P. Lovergine  f.lovergine AT 
iesi.ba.cnr.it

Con quale sistema operativo?

Newsgroup: it.comp.lang.c
Titolo: errore scrittura file

sono un utilizzatore sporadico del c++ e ultimamente sono alle prese
con l'apertura, lettura, scrittura, chiusura dei file; così mi sono
imbattuto in una serie di problemi: 1)utilizzando il comando
fprintf(file,"testo") sul file aperto precedentemente in modalità "wt"
non compare niente (verifica fatta da windows aprendo il file con
notepad), ma in compenso la scritta appare sullo schermo. perché
accade questo? 2)utilizzando il comando putc('a',file) sul file non
compare niente (verifica fatta da windows aprendo il file con notepad)
mentre alla successiva lettura del file con compilatore c, utilizzando
il comando carattere=getc(file) la stampa a video della variabile
carattere da risultati un pò strani, infatti compare la e con la
dieresi sopra. 3)non capisco se è meglio usare i comandi
fprintf/fscanf oppure i comandi fputc/fgetc. quali sono le
caratteristiche, i punti deboli e punti di forza di entrambi? grazie

 accade questo?
ti rispondo al primo punto (sono di corsa)
ho provato in questo modo e funziona.
#include <stdio.h>
main()
{
  FILE *f;
  f=fopen("h:\ciao.txt","wt");
  fprintf(f,"ciao\n");
  fclose(f);
}
ciao
-- 
-------------------------------
per scrivere in privato
togliere "1975nosp"
to reply remove "1975nosp"

 caratteristiche, i punti deboli e punti di forza di entrambi? grazie
Nessun punto debole o di forza: sono funzioni diverse che fanno cose
diverse, anche se alla fin fine fanno tutte input/output.
--
Cingar
-- 
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: Array di funzioni...

Scusate come posso definire un array di funzioni? Come poi posso accedere al
singolo elemento (funzione) dell'array?
Grazie per la pazienza!

 singolo elemento (funzione) dell'array?
es. con 3 funzioni che ricevono un intero e restituiscono un intero :
int *f[3](int) = {funzione1, funzione2, funzione3};
Per chiamare ad es. la seconda funzione e passargli come argomento il 
numero 4: 
*f[1](4);
-- 
Marco

 int *f[3](int) = {funzione1, funzione2, funzione3};
Questo è sbagliato: si deve usare una typedef:
typedef void (*PF)( );
PF ptr_arr[2];
Nella prima linea ho dichiararato un "tipo" PF che rappresenta i puntatori a
funzioni che non accettano parametri e non restituiscono nessun valore.
Nella seconda un array di PF, che viene trattato come un array normale.
Per assegnare una funzione ad un elemento dell'array si usa il nome della
stessa:
void f1( );
void f2( );
ptr_arr[0] = f1;
ptr_arr[1] = f2;
Naturalmente, modificando il typedef, si possono usare tutti i tipi di
funzione di cui si ha bisogno.
Ciao,
Cecco

 PF ptr_arr[2];
E' sbagliato, sě, ma non perchč bisogna usare il typedef, piuttosto 
perchč in quel modo dichiara un array di funzioni, non di puntatori a 
funzioni, cosa non consentita dal C.
Ha semplicemente dimendicato di utilizzare le parentesi in modo appropriato:
     int (*f[3])(int) = {funzione1, funzione2, funzione3};
         ^     ^
Fabio Alemagna

          ^     ^
Ohps! Hai ragione.
-- 
Marco

 funzione di cui si ha bisogno.
Ma nel caso in cui le 3 funzioni abbiano lo stesso prototipo non e' in
fin dei conti lo stesso?
Ciao.
-- 
Marco

 funzioni, cosa non consentita dal C.
Per quanto mi risulta array di funzioni non si possono dichiarare, ed
infatti quella dichiarazione viene segnalata come errore. Comunque, in
effetti, la soluzione proposta sotto non l'avevo manco presa in
considerazione ;-)
Ciao,
Cecco


 infatti quella dichiarazione viene segnalata come errore.
Ed io cosa ho scritto lě sopra?
Fabio Alemagna

 ha scritto nel messaggio
news:3C77A1A1...@aros.org...

E' vero, sorry ... mi ero fumato un ballino di biada ;-)
Ciao,
Cecco

 E' vero, sorry ... mi ero fumato un ballino di biada ;-)
Eh... lo dico io che fumare fa male :)
Fabio Alemagna

 wrote in message
news:slrna7cdnl....@igloo.northpole...

Newsgroup: it.comp.lang.c
Titolo: altro problema...

...e fossero solo questi!!!!!
allora, il mio programma deve leggere dei dati da un file txt generato
precedentemente da un altro programma.
Questo file è costituito, per la parte che ci interessa, da una rigadi 150
valori che il mio programma deve leggere e collocare in un array.
Fino a che deve leggere solo la suddetta fila tutto a posto!!! Adesso ho
bisogno di fargli leggere altre righe collocate sotto ma non lo fa, legge e
colloca sempre e solo la prima riga.
l'istruzione che uso è fscanf:in pratica dovrei riuscire farlo scendere di
riga prima di effettuare la nuova lettura e quindi la nuova collocazione
nell'array.
Grazie anche solo per aver letto tutto sto papiro....


while(!feof())/*end of file*/
{
/*quello che hai fatto tu*/
}


scusa ho dimenticato il puntatore al file
FILE *fp;
while(!feof(fp))


Grazie ma in realtà gia me li leggeva solo che non li vedevo!!!!!!!!!!!!!

Newsgroup: it.comp.lang.c
Titolo: Libri sul C++

Salve a tutti, sono nuovo del newsgroup.
Vorrei iniziare subito con una domandina... vorrei chiedervi se conoscete
qualche testo da scaricare sulla rete per imparare a programmare in C++.
Io ho qualche nozione di base sul C
Grazie a tutti
Ciao
Alessio!

 Io ho qualche nozione di base sul C
Secondo me fa sempre bene averne un po', può ampliare parecchio le
possibilità di lavoro!
by      /* }<S:g:R:u:N:g>{ */
=================================================
In principio, il file era informe e vuoto,
e il vuoto era sulla faccia dei bit.
E le Dita dell'Autore si mossero sulla faccia della tastiera.
E l'Autore disse "Siano le parole!",
e le parole furono.
=================================================

 a programmare in C++.
  Perche` chiederlo nel newsgroup sul C?
	news:it.comp.lang.c++
	Alla prossima,
		Marco

guida completa!
www.bruceeckel.com

Newsgroup: it.comp.lang.c
Titolo: Fgets

Salve a tutti , sto provando ad usare
fgets per leggere file di testo
ho un while che non termina :
#define RECORD 255
char rr[RECORD];
if ((fp = fopen ("ciao.txt","a"))==NULL)
 { printf("Non trovo il file ciao.txt \n"); exit(1);}
while(!feof(fp)){
fgets(fgets(rr,RECORD,fp);
/*ciclo infinito */
}
... dove sbaglio?
Grazie a tutti
Ciao

 }
Ciao
Giovanni
-- 
   A computer is like an air conditioner,
   it stops working when you open Windows.
   Registered Linux user #337974  < 
http://giovanni.homelinux.net/
 >

 Giovanni
... non era mia capitato che usando fgets capitasse un problema di questo
tipo.
Ciao

 ferror() dovrebbe riprnarti un errore.
... ferror ritorna 1
e un errore  su stream?
il file e in modalità "w"
il file l'ho creato io.
Ciao

 il file l'ho creato io.
Su Linux errore 1 (EPERM) significa "Operation not permitted".
Il file e` in modalita` write e le operazioni di lettura falliscono.


 Giovanni

"Yth" < <no@spam> ha scritto:

Quotando Giovanni:
  Aprire il file per leggerlo in modo "a" (append) posiziona il pointer
  alla fine del file.  Ed e` in modalita` di sola scrittura.
non puoi aprire un file in sola scrittura e pretendere che le funzioni
di lettura vadano a buon fine. Se vuoi la semantica di append e la
possibilità di leggere usa "a+".
Luca
-- 
Home: 
http://kronoz.cjb.net
Tentare e` il primo passo verso il fallimento.
Homer J. Simpson

Per leggere un file e stamparlo a video, fai in questo modo:
...
if ((inputFile = fopen("input.txt", "r")) != NULL)
{
     while (!feof(inputFile))
     {
           printf(fgets(string, 1024, inputFile));
     }
}
Yth ha scritto:



No. Cosě non va bene.
Pensa a cosa puň succedere se il file contiene delle stringhe che
printf puň interpretare come di formattazione.
Bisogna usare in generale l'argomento di formato in un modo simile a questo:
    printf("%s",string);
--
Giorgio Silvestri
DSP/Embedded/Real Time OS   Software Engineer

 }
C non e Pascal.
if ((inputFile = fopen("input.txt", "r")) != NULL)
{
     while (fgets(string, 1024, inputFile))
     {
           puts(string);
     }
}
cc


Con eventualmente degli fflush.


Newsgroup: it.comp.lang.c
Titolo: Problema con funzione exit

Ciao a tutti,
chiedo il vosto aiuto.
eseguendo il programma sotto, aspetto che il valore contenuto in
status sia 1.
Eseguendolo ottengo 256.
PID: 7112 STATUS: 256
Sapete dirmi il motivo, ho guardato la documentazione delle funzioni,
sembra tutto corretto.
Vi ringrazio tanto per l'aiuto.
Ciao
Maurizio
__________
int pid,pid_te;
int status;
int main(){
  pid=fork();
  if (pid==0)
    exit(1);
   else
    pid_te=wait(&status);
  printf("PID: %d STATUS: %d\n",pid_te,status);
}
__________


Devi leggere lo stato con l'apposita macro. [ WEXITSTATUS(status) ]
$  man 2 wait
Ciao
Giovanni
-- 
   A computer is like an air conditioner,
   it stops working when you open Windows.
   Registered Linux user #337974  < 
http://giovanni.homelinux.net/
 >


cmq il pid del processo non è di tipo "int" ma di tipo "pid_t" ed è
contenuto nelle <sys/types.h>
ciao
Dexter
Newsgroup: it.comp.lang.c
Titolo: niubbo: che ambiente di programmazione usare?

Salve a tutti,
che ambiente di programmazione consigliereste ad un neofita di C, 
abituato a lavorare in ambiente SUN (cioč Sun ONE Studio)? Per ora ho 
installaro Dev-C++ e mi trovo abbastanza bene. Avete qualche buon 
consiglio da darmi?
Grazie,
Giulio

 consiglio da darmi?
Se il consiglio e' buono, tocca a te stabilirlo.
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 se vuoi darci un'occhiata... 
www.parinyasoft.com
Lo sto scaricando ora... mi sembra fatto piuttosto bene (forse la 
grafica è un po' old-style, ma non si può avere tutto dalla vita ;-) )
Ciao e grazie,
Giulio

 Secondo me "MinGW Developer Studio" e' decisamente meglio:
Scaricato ed installato.
Prima domanda: perchè non posso cambiare tipo/dimensione del font?
O meglio: perchè *benchè* cambi dimensione e tipo del font, rimane 
sempre Courier New - 10 ?
E' un baco?
Grazie,
Giulio

 abituato a lavorare in ambiente SUN (cioè Sun ONE Studio)? Per ora ho
prova anche wx-devcpp. ciao

 E' un baco?
Potrebbe anche essere... Tieni presente che non mi e' mai venuto
in mente di cambiare carattere: il Courier 10 punti, a mio avviso, e'
il carattere piu' leggibile per i listati (oltre ad essere un carattere
a
spaziatura fissa, pertanto che mantiene la formattazione che gli e'
stata data, altra cosa fondamentale per la leggibilita' dei programmi).
C:\>iao Angelo

 stata data, altra cosa fondamentale per la leggibilita' dei programmi).
Si, ok... ma a me piace l'effetto cinema!!! ;-)
Ciao
GiiuliO

 prova anche wx-devcpp. ciao
Ok, sto installando.
Ma in pratica è DevC++ con le estensioni per le GUI?
Ciao,
Giulio

 Ma in pratica è DevC++ con le estensioni per le GUI?
Sì. Utilizza le wxWidgets. Se vuoi un consiglio fermati un po' e prova
almeno una settimana ciascun editor che ti abbiamo consigliato,
soprattutto familiarizza con l'ambiente, fai delle prove e POI decidi
cosa tenere e cosa buttare. Ciao e buon lavoro!