Repository 32bit  Forum
Repository 64bit  Wiki

problema con lo stream stdin

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.

problema con lo stream stdin

Messaggioda null » dom ott 17, 2004 1:11

#include <stdio.h> <BR>int main(){ <BR> FILE *f; <BR> int c; <BR> f = fopen("prova.txt","w"); <BR> while((c=getc(stdin)) != EOF) <BR> putc(c,f); <BR> fclose(f); <BR> return 0; <BR>} <BR> <BR>Questo programma dovrebbe scrivere sul file "prova.txt", ciò che scrivo da tastiera nello stream stdin, ma dopo aver scritto da tastiera, devo dar Ctrl+c per uscire dal programma e nel file prova.txt non screive niente. <BR>Sapreste dirmi in cosa sbaglio? <BR>Grazie <BR><br>
null
Linux 2.0
Linux 2.0
 
Messaggi: 167
Iscritto il: gio lug 01, 2004 23:00

problema con lo stream stdin

Messaggioda useless » dom ott 17, 2004 11:19

<!-- BBCode Quote Start --><TABLE BORDER=0 ALIGN=CENTER WIDTH=85%><TR><TD><font size=-1>Quote:</font><HR></TD></TR><TR><TD><FONT SIZE=-1><BLOCKQUOTE> <BR>sukko@unholycathedral ~ $ gcc a.c <BR>sukko@unholycathedral ~ $ ./a.out <BR>ciao <BR>sukko@unholycathedral ~ $ cat prova.txt <BR>ciao <BR></BLOCKQUOTE></FONT></TD></TR><TR><TD><HR></TD></TR></TABLE><!-- BBCode Quote End --> <BR>come vedi, funziona. quando hai finito devi premere ctrl+d (che è EOF), e non ctrl+c, che interrompe il programma e gli impedisce di scrivere nel file! (cosa che, tra l´altro, può essere posticipata fino all´fclose () x motivi di buffering) <BR> <BR>comunque ne approfitto x darti qualche consiglio: <BR>- la dichiarazione corretta di main è int main (void) o int main (int argc, char *argv[]). tutte le altre sono deprecated (in particolare le funzioni senza parametri vanno dichiarate usando void); <BR>- controlla SEMPRE che i comandi importanti non siano falliti. nella fattispece ci vorrebbe un controllo sulla fopen: <BR>if ((f = fopen (...)) != NULL) ... <BR> <BR>segui questi pochi consigli e continua così che vai bene ;-).<br>
Avatar utente
useless
Staff
Staff
 
Messaggi: 3896
Iscritto il: sab ott 11, 2003 23:00
Località: A place where the streets have no name

problema con lo stream stdin

Messaggioda null » dom ott 17, 2004 12:14

ti ringrazio molto, so che devo mettere il controllo sulla funzione fopen, infatti nel mio programma l´ho messo, ma nel post no per non perdere tempo a scrivere in quanto il problema sapevo che era un altro. <BR>In ogni caso ti rinfgrazio molto perchè sei l´unico a risolvermi i problemi di programmazione. <BR>Ciao e grazie ancora<br>
null
Linux 2.0
Linux 2.0
 
Messaggi: 167
Iscritto il: gio lug 01, 2004 23:00


Torna a Gnu/Linux in genere

Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti