PDA

View Full Version : [C] Leggere dallo stdin carattere per carattere


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

cionci
06-02-2008, 14:38
E' perfettamente lecito. la scanf in realtà chiama fscanf con il primo parametro a stdin.