Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2017
    Messaggi
    10

    [C] Problema con il comando printf e un ciclo infinito

    Ciao ragazzi, come da titolo ho un problema con il comando printf

    codice:
    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

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Succede perché la printf usa un buffer ... usa una

    fflush(stdout);

    se vuoi forzare la visualizzazione dopo la printf
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2017
    Messaggi
    10
    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

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.