[Visual C++] Riportare l'output in un file di testo

di il
4 risposte

[Visual C++] Riportare l'output in un file di testo

Ciao sul mio manuale non ho trovato niente a rigurado, mi servirebbe riportare l'output del mio programma in un file di testo anzichè della classica visualizzazione su monitor. Non credo sia una cosa difficilissima ma dai mezzi a disposizione non sono riuscito a capire bene.
Sapreste aiutarmi?
Grazie

4 Risposte

  • Re: [Visual C++] Riportare l'output in un file di testo

    Ciao,

    E' sufficiente aprire un file e scriverci dentro (chiudendolo quando hai finito).

    Se non hai problemi ad usare la stdio, la funzione fopen() apre il file, la fprintf() è analoga alla printf, ma stampa su file, la fclose() chiude.

    Altrimenti puoi usare uno stream del namespace std... le operazioni sono sostanzialmente le stesse (apertura,scrittura,chiusura), eccettuato il fatto che per la scrittura viene riscritto l'operatore << che permette una sintassi simile a quella usata per cin e cout.

    Ovviamente il logging va fatto parallelamente al normale output se vuoi mantenere anche quello... altrimenti può essere sufficiente trasformare le printf in fprintf (o le cout<< in stream<<). In quest'ultimo caso addirittura, trattandosi di un'applicazione console, puoi invocare il programma redirigendo direttamente l'output su un file con il comando "nome_programma" > "nome_file"

    Ciaociao
  • Re: [Visual C++] Riportare l'output in un file di testo

    Ti ringrazio, ho risolto subito con i vari fopen(), fprint() e fclose().

    Ora però mi piacerebbe che, una volta terminato il programma, il file di testo si aprisse da solo (senza chiudersi ovviamente).
    E' possibile?
  • Re: [Visual C++] Riportare l'output in un file di testo

    Ciao,

    Un sistema banale può essere una chiamata a system("notepad.exe <nomefile_da_aprire>"); che provocherà l'apertura del notepad.

    In alternativa, su sistemi win32, potresti cercare di lanciare il programma associato all'estensione usando i servizi della shell32.dll (non ricordo in questo momento l'API precisa, ma mi pare sia la ShellExecuteEx... se gli passi un nome di file che ha estensione associata ad un programma dovrebbe invocare automaticamente il programma associato).
    Ovviamente funziona solo in SO win32...

    Ciaociao
  • Re: [Visual C++] Riportare l'output in un file di testo

    Grazie ancora, la soluzione "banale" per me va più che bene, tutto risolto!
    Grazie ciao!
Devi accedere o registrarti per scrivere nel forum
4 risposte