MD.TPTM
06-02-2008, 00:16
Ho scritto una funziona che legge e analizza una riga di un testo da uno stream a file.
La funzione ha questo prototipo
void ParseRule(FILE *Pfin, char *c, GNODE **Grafo);
Dopo aver analizzato tutte le righe del file di testo, ho necessità di utilizzare la stessa funzione con dei dati in input e ho notato che se chiamo la funzione passando come primo parametro "stdin" il programma funziona perfettamente fermandosi e dando la possibilità all'utente di inserire i dati dallo standard input.
E' corretto gestire lo standard input in questo modo? La domanda mi sorge perché la funzione analizza lo stream leggendolo carattere per carattere con uno fscanf(stream,"%c",&c) fino al carattere di "a capo". Posso avere problemi con il buffer dello stdin o ci sono particolari controindicazioni per questo procedimento?
Grazie a tutti :D
La funzione ha questo prototipo
void ParseRule(FILE *Pfin, char *c, GNODE **Grafo);
Dopo aver analizzato tutte le righe del file di testo, ho necessità di utilizzare la stessa funzione con dei dati in input e ho notato che se chiamo la funzione passando come primo parametro "stdin" il programma funziona perfettamente fermandosi e dando la possibilità all'utente di inserire i dati dallo standard input.
E' corretto gestire lo standard input in questo modo? La domanda mi sorge perché la funzione analizza lo stream leggendolo carattere per carattere con uno fscanf(stream,"%c",&c) fino al carattere di "a capo". Posso avere problemi con il buffer dello stdin o ci sono particolari controindicazioni per questo procedimento?
Grazie a tutti :D