PDA

Visualizza la versione completa : [C] Problema con il comando printf e un ciclo infinito


Trispo
21-10-2017, 20:35
Ciao ragazzi, come da titolo ho un problema con il comando printf



int main(int argc, char* argv[]){
printf("ciao!);
for(;;){
}
}


Non riesco a capire come mai se dopo il printf metto un ciclo infinito (ho provato anche con while(1)) quando eseguo il programma non mi stampa la stringa, mentre se NON metto il ciclo infinito o se ne metto uno che termina me la stampa.

Non capisco proprio, anche perché dovrebbe seguire le istruzioni in ordine sequenziale
Grazie a tutti :ciauz:

oregon
21-10-2017, 21:12
Succede perché la printf usa un buffer ... usa una

fflush(stdout);

se vuoi forzare la visualizzazione dopo la printf

Trispo
21-10-2017, 21:23
grazie :), ho provato ed effettivamente funziona. Se dopo la printf e prima del ciclo for avessi altro codice con altre printf andrebbe bene quindi mettere il fflush solo una volta prima del for(;;) oppure andrebbe messo un fflush dopo ogni printf? mi potresti dire "perché funziona" per curiosità a questo punto, perché tra l'altro il problema me lo da solo se compilo ed eseguo da terminale con gcc, mentre con un qualunque IDE questo problema non si verifica! grazie ancora comunque :)

Loading