Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [C] Stampare la stessa stringa sia su file che su terminale

    Salve a tutti vorrei chiedervi se è possibile stampare una serie di stringhe sia su file che sul terminale. Mi spiego meglio:

    Ho visto che in molti codici, si lascia # nei printf per far fronte ad eventuali stampe su file ed elaborazioni dati

    codice:
    printf("# Integrazione equazioni oscillatore armonico\n");
    ora, come faccio a far stampare questa stringa sia sul file che sul terminale?

    perchè facendo

    codice:
    fprintf(fp,"# Integrazione equazioni oscillatore armonico\n");
    me la stampa solo sul file
    "I don't know anything, but I do know that everything is interesting if you go into it deeply enough."(Richard P. Feynman)

    “Don’t waste time living someone else’s life. Stay hungry. Stay Foolish” (Steve Jobs)

  2. #2
    Utente di HTML.it L'avatar di torn24
    Registrato dal
    Aug 2008
    Messaggi
    551

    ciao

    Non esiste necessità di scrivere contemporaneamente su file e visualizzare su console !
    possiamo permetterci di aspettare qualche millesimo di secondo

    quindi usi due funzioni in successione fprintf() per scrivere su file , e printf() per scrivere a video , printf è idenntica a fprintf eccetto per l'argomento file
    Tecnologia

  3. #3
    Ho capito, chiaro! Comunque era più che altro per rendere il codice più snello evitando di ripetere due volte le stesse cose
    "I don't know anything, but I do know that everything is interesting if you go into it deeply enough."(Richard P. Feynman)

    “Don’t waste time living someone else’s life. Stay hungry. Stay Foolish” (Steve Jobs)

  4. #4
    Tip: su sistemi UNIX-like puoi "wrappare" il tuo programma in uno script che usi l'utility tee per scrivere sia su standard output che su file.
    codice:
    #!/bin/bash
    ./tuoprogramma "$@" | tee out.txt
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Tip: su sistemi UNIX-like puoi "wrappare" il tuo programma in uno script che usi l'utility tee per scrivere sia su standard output che su file.
    Terrò presente anche questa possibilità ti ringrazio!
    "I don't know anything, but I do know that everything is interesting if you go into it deeply enough."(Richard P. Feynman)

    “Don’t waste time living someone else’s life. Stay hungry. Stay Foolish” (Steve Jobs)

  6. #6
    Amaro C++, il gusto pieno dell'undefined behavior.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326
    Del resto lo stesso comando tee nelle GNU coreutils non fa altro che scritture su file in maniera sequenziale:

    codice:
      while (1)
        {
          bytes_read = read (0, buffer, sizeof buffer);
          if (bytes_read < 0 && errno == EINTR)
            continue;
          if (bytes_read <= 0)
            break;
    
          /* Write to all NFILES + 1 descriptors.
             Standard output is the first one.  */
          for (i = 0; i <= nfiles; i++)
            if (descriptors[i]
                && fwrite (buffer, bytes_read, 1, descriptors[i]) != 1)
              {
                error (0, errno, "%s", files[i]);
                descriptors[i] = NULL;
                ok = false;
              }
        }
    every day above ground is a good one

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.