[C]Lettura da stdin

di il
2 risposte

[C]Lettura da stdin

Salve a tutti, è tutta la mattina che cerco di risolvere un problema... E ho la netta sensazione che quando capirò come fare avrò una reazione tipo -_-'''

CMQ devo bufferizzare un testo da stdin.
Mettiamo che io non sappia quali saranno le dimensioni del testo sullo stdin (che è il caso più comune direi). Allora ho fatto

int i = 0;
char** bigBuffer = NULL;
while (*condition*){
bigBuffer = realloc (bigBuffer, (i+1) * sizeof(char*));
bigBuffer = malloc(100*sizeof(char));
fgets(bigBuffer, 100, stdin);
i++;
}

Questo dovrebbe mettere su bigBuffer 100 chars alla volta. Ovviamente il testo potrà contenere dei \n (tipo: "Il gatto mangia il topo.\nIl cane mangia il gatto.\nIl cane ha mangiato il topo\n), quindi una condizione d'uscita dal while sul '\n' non funziona.
Se si trattasse di un txt basterebbe cercare EOF, ma io devo leggere da stdin...

Cosa metto come condition per uscire dal while?

2 Risposte

  • Re: [C]Lettura da stdin

    Ctrl D || ctrl Z?
  • Re: [C]Lettura da stdin

    Quello funzionerebbe se su stdin venisse "immesso" ctrl Z o ctrl D... Ma non è il mio caso... Cmq ho risolto (bastava una strlen, solo che ieri avevo fatto casino con la strlen che non conteggia il char di terminazione stringa)... Grazie comunque
Devi accedere o registrarti per scrivere nel forum
2 risposte