• Giga@hdv-tech.com
  • Servizio online 24 ore su 24:
    • 7189078c
    • sns03
    • 6660e33e
    • youtube 拷贝
    • instagram

    C, Lettura e scrittura di documenti

    Tempo di pubblicazione: 11 agosto-2023

    Descrive come il programmatore C crea, apre e chiude un file di testo o un file binario.

    Un file, indica una serie di byte, sia che si tratti di un file di testo o di un file binario, linguaggio C, non solo fornisce l'accesso alle funzioni di livello superiore, ma fornisce anche la chiamata sottostante (OS) per elaborare i file sul dispositivo di archiviazione .Questo capitolo spiegherà le chiamate importanti nella gestione dei documenti.

    apri il file

    Solitamente utilizzando la funzione fopen() per creare un nuovo file o aprire un file esistente, questa chiamata inizializza un oggetto di tipo FILE che contiene tutte le informazioni necessarie per controllare il flusso.Ecco il prototipo di questa chiamata di funzione:

    FILE *fopen ( const char * nome file , const char * modalità );

    Qui filename è una stringa per denominare un file, il valore della modalità di accesso può essere uno dei seguenti valori:

    modello

    descrizione

    r

    Apri un file di testo esistente che ne consenta la lettura.

    w

    Apre un file di testo che consente la scrittura nel file.Se il file non esiste, viene creato un nuovo file.Qui, il tuo programma scrive il contenuto dall'inizio del file.Se il file esiste, verrà troncato a lunghezza zero e riscritto.

    a

    Apri un file di testo e scrivi nel file in modalità accodamento.Se il file non esiste, viene creato un nuovo file.Qui, il tuo programma aggiunge contenuto ai file che hai già.

    r+

    Apri un file di testo che ti permetta di leggere e scrivere il file.

    w+

    Apri un file di testo che ti permetta di leggere e scrivere il file.Se il file esiste già, il file viene troncato a lunghezza zero e se il file non esiste, viene creato un nuovo file.

    a+

    Apri un file di testo che ti permetta di leggere e scrivere il file.Se il file non esiste, viene creato un nuovo file.La lettura inizia all'inizio del file e la scrittura è solo in modalità accodamento.

    Se elaborato file binario, utilizzare la seguente modalità di accesso per sostituire quanto sopra:

    "rb", "wb", "ab", "rb+", "r+b", "wb+", "w+b", "ab+", "a+b"

    fascicolo chiuso

    Per chiudere il file, utilizzare la funzione fclose().Il prototipo della funzione è il seguente:

    int fclose (FILE *fp);

    • Se il file viene chiuso correttamente, la funzione fclose() restituisce zero e se l'errore restituisce EOF.Questa funzione, infatti, rimuove i dati dal buffer, chiude il file e libera tutta la memoria utilizzata per quel file.EOF è una costante definita nel file di intestazione stdio.h

    La libreria standard C fornisce varie funzioni per leggere e scrivere file per caratteri o come una stringa di lunghezza fissa.

    Scrivi nel file

    Ecco le funzioni più semplici per scrivere caratteri nello stream:

    int fputc ( int c , FILE *fp );

    La funzione fputc() scrive il valore del carattere del parametro c nel flusso di output a cui punta fp.Se le scritture hanno esito positivo, restituisce il carattere scritto e l'EOF se si verifica un errore.È possibile utilizzare la seguente funzione per scrivere una stringa che termina con un null nel flusso:

    int fputs ( const char *s , FILE *fp );

    La funzione fputs() scrive la stringa s nel flusso di output a cui punta fp.Se le scritture hanno esito positivo, restituisce un valore non negativo e l'EOF se si verifica un errore.Puoi anche usare la funzione di int fprintf (FILE * fp, const char * format,...) scrive una stringa nel file.Prova il seguente esempio:

    Nota: assicurati di avere una directory tmp disponibile e, se non esiste, devi prima crearla sul tuo computer.

    / tmp è solitamente una directory temporanea sul sistema Linux.Se si esegue sul sistema Windows, è necessario modificarlo in una directory esistente nell'ambiente locale, ad esempio: C: \ tmp, D: \ tmp, ecc.

    esempio vivente

    #includereint principale () { FILE *fp = NULL ;fp = fopen ("/tmp/test.txt", "w+");fprintf (fp , "Questo è un test per fprintf...\n ");fputs ("Questo è un test per fputs...\n ", fp );fchiudi (fp );}

    Quando il codice precedente viene compilato ed eseguito, crea un nuovo file test.txt nella directory /tmp.E scrive su due righe utilizzando due diverse funzioni.Leggiamo questo file dopo.

    Leggi il fascicolo

    La seguente è la funzione più semplice per leggere un singolo carattere da un file:

    int fgetc (FILE * fp);

    La funzione fgetc() legge un carattere dal file di input a cui punta fp.Il valore restituito è il carattere letto e l'EOF se si verifica un errore.La seguente funzione consente di leggere una stringa da uno stream:

    char *fgets ( char *buf , int n , FILE *fp );

    La funzione fgets() legge n-1 caratteri dal flusso di input diretto da fp.Copia la stringa letta nel buffer buf e aggiunge un carattere nullo alla fine per terminare la stringa.

    Se questa funzione incontra un carattere di riga spezzata '\ n' o l'EOF della fine del file prima di leggere l'ultimo carattere, restituisce solo i caratteri letti, comprese le interruzioni di riga.Puoi anche utilizzare la funzione int fscanf (FILE * fp, const char * format,...) per leggere la stringa dal file, ma interrompe la lettura quando incontra il primo spazio e interruzione di riga.

    esempio vivente

    #includereint principale () { FILE *fp = NULL ;buff char [255];fp = fopen ("/tmp/test.txt", "r");fscanf (fp , "%s ", buff );printf ("1: %s \n ", buff );fgets (buff , 255, (FILE *)fp );printf ("2: %s \n ", buff );fgets (buff , 255, (FILE *)fp );printf ("3: %s \n ", buff );fchiudi (fp );}

    Quando il codice precedente viene compilato ed eseguito, legge i file creati nella sezione precedente, producendo i seguenti risultati:

    1: Questo 2: sta testando fprintf...

    3: Questo è un test per gli fput...

    Innanzitutto, il metodo di fscanf() legge solo This .perché incontra uno spazio nella parte posteriore.In secondo luogo, chiama la funzione fgets () per leggere la parte rimanente fino alla fine della riga.Infine, chiama fgets() per leggere completamente la seconda riga.

    Funzione di I/O binario

    Le seguenti due funzioni vengono utilizzate per l'ingresso e l'uscita binari:

    size_t fread (void *ptr , size_t size_of_elements , size_t number_of_elements , FILE *a_file );size_t fwrite (const void *ptr , size_t size_of_elements , size_t number_of_elements , FILE *a_file );

    Entrambe le funzioni sono di lettura e scrittura per i blocchi di archiviazione, in genere array o strutture.

    Sopra la lettura e la scrittura di file C appartiene a HDV Phoelectron Technology Ltd., un'operazione tecnica di software.E la società per le apparecchiature relative alla rete (come: ACONU/ comunicazioneONU/ intelligenteONU/ fibraONU, ecc.) ha riunito un potente team di software, per ogni cliente personalizza le esigenze esclusive che ne hanno bisogno, inoltre lascia che i nostri prodotti siano più intelligenti e avanzati.



    web software