• Giga@hdv-tech.com
  • Serviziu in linea 24 ore:
    • 7189078c
    • sns03
    • 6660e33e
    • youtube 拷贝
    • instagram

    C, Lettura è Scrittura di Documenti

    Tempu di post: Aug-11-2023

    Descrive cumu u programatore C crea, apre è chjude un schedariu di testu, o un schedariu binariu.

    Un schedariu, significa una seria di byte, s'ellu hè un schedariu di testu o un schedariu binariu, C Language, ùn solu furnisce l'accessu à e funzioni di u livellu superiore, ma ancu furnisce a chiamata sottostante (OS) per processà i fugliali nantu à u dispusitivu di almacenamento. .Stu capitulu spiegà i chjami impurtanti in a gestione di documenti.

    open-file

    Di solitu utilizendu a funzione fopen () per creà un novu schedariu o apre un schedariu esistenti, sta chjama inizializza un ughjettu di u tipu FILE chì cuntene tutte l'infurmazioni necessarii per cuntrullà u flussu.Eccu u prototipu di sta funzione chjamata:

    FILE *fopen (const char * filename, const char * mode);

    Eccu filename hè una stringa per nome un schedariu, u valore di u modu d'accessu pò esse unu di i seguenti valori:

    mudellu

    descrizzione

    r

    Apertura un schedariu di testu esistenti chì permette di leghje.

    w

    Apertura un schedariu di testu chì permette di scrive à u schedariu.Se u schedariu ùn esiste micca, un novu schedariu hè creatu.Quì, u vostru prugrammu scrive u cuntenutu da u principiu di u schedariu.Se u schedariu esiste, serà truncatu à a lunghezza zero è riscritta.

    a

    Apertura un schedariu di testu è scrivite à u schedariu in un modu append.Se u schedariu ùn esiste micca, un novu schedariu hè creatu.Quì, u vostru prugrammu appends cuntenutu à i schedari chì avete digià.

    r+

    Apertura un schedariu di testu chì permette di leghje è scrive u schedariu.

    w+

    Apertura un schedariu di testu chì permette di leghje è scrive u schedariu.Se u schedariu esiste digià, u schedariu hè truncatu à a lunghezza zero, è se u schedariu ùn esiste micca, un novu schedariu hè creatu.

    a+

    Apertura un schedariu di testu chì permette di leghje è scrive u schedariu.Se u schedariu ùn esiste micca, un novu schedariu hè creatu.A lettura principia à u principiu di u schedariu, è a scrittura hè solu in modu append.

    Se processatu u schedariu binariu, utilizate u modu d'accessu seguente per rimpiazzà u sopra:

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

    schedariu chjusu

    Per chjude u schedariu, utilizate a funzione fclose ().U prototipu di a funzione hè u seguente:

    int fclose (FILE *fp);

    • Se u schedariu hè chjusu bè, a funzione fclose () torna cero, è se l'errore torna EOF.Sta funzione, in fattu, sguassate i dati da u buffer, chjude u schedariu, è libera tutta a memoria utilizata per quellu schedariu.EOF hè una constante definita in u file header stdio.h

    A biblioteca standard C furnisce diverse funzioni per leghje è scrive i fugliali per caratteri o cum'è una stringa di lunghezza fissa.

    Scrivite à u schedariu

    Eccu e funzioni più simplici per scrive caratteri à u flussu:

    int fputc (int c, FILE *fp);

    A funzione fputc () scrive u valore di u caratteru di u paràmetru c in u flussu di output chì u fp punta à.Se i scritture sò riesciuti, torna u caratteru scrittu è l'EOF si un errore si trova.Pudete aduprà a seguente funzione per scrive una stringa chì finisce cù un null à u flussu:

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

    A funzione fputs () scrive a stringa s in u flussu di output induve l'fp punta.Se i scritturi riescenu, torna un valore micca negativu è l'EOF si un errore si trova.Pudete ancu aduprà a funzione di int fprintf (FILE * fp, const char * format,...) scrive una stringa à u schedariu.Pruvate u seguente esempiu:

    Nota: Assicuratevi chì avete un repertoriu tmp dispunibule, è s'ellu ùn esiste micca, avete bisognu di creà in u vostru urdinatore prima.

    / tmp hè di solitu un repertoriu tempurale in u sistema Linux.Se corre nantu à u sistema Windows, avete bisognu di mudificà à un repertoriu esistente in l'ambiente lucale, cum'è: C: \ tmp, D: \ tmp, etc.

    esempiu vivu

    #includeint main () { FILE *fp = NULL ;fp = fopen ("/tmp/test.txt", "w+");fprintf (fp , "Questu hè un test per fprintf...\n ");fputs ("Questa hè una prova per fputs...\n ", fp );fclose (fp);}

    Quandu u codice sopra hè compilatu è eseguitu, crea un novu file test.txt in u cartulare / tmp.È scrive à duie linee cù duie funzioni diverse.Leghjemu stu schedariu dopu.

    Leghjite u schedariu

    A seguente hè a funzione più simplice per leghje un caratteru unicu da un schedariu:

    int fgetc ( FILE * fp );

    A funzione fgetc () leghje un caratteru da u schedariu di input à quale u fp punta.U valore di ritornu hè u caratteru di lettura è l'EOF si un errore si trova.A funzione seguente permette di leghje una stringa da un flussu:

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

    A funzione fgets () leghje n-1 caratteri da u flussu di input direttu da fp.Copià a stringa di lettura à u buffer buf è aghjunghje un caratteru nulu à a fine per finisce a stringa.

    Se sta funzione scontra un caratteru di linea spezzata '\ n' o l'EOF di a fine di u schedariu prima di leghje l'ultimu caratteru, allora torna solu à i caratteri letti, cumprese i salti di linea.Pudete ancu aduprà a funzione int fscanf (FILE * fp, const char * format,...) per leghje a stringa da u schedariu, ma ferma a lettura quandu scontru u primu spaziu è a linea break.

    esempiu vivu

    #includeint main () { FILE *fp = NULL ;char buff [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 );fclose (fp);}

    Quandu u codice sopra hè cumpilatu è eseguitu, leghje i schedari creati in a sezione precedente, pruducendu i seguenti risultati:

    1: Questu 2: hè in prova per fprintf...

    3: Questu hè un test per fputs...

    Prima, u metudu di fscanf () leghje solu Stu .perchè scontra un spaziu in u spinu.Siconda, chjamate functon fgets () per leghje a parte restante finu à a fine di a linea.Infine, chjamate fgets () per leghje a seconda fila cumpletamente.

    Funzione I/O binaria

    E seguenti duie funzioni sò aduprate per l'input binariu è l'output:

    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 );

    E duie funzioni sò leghjite è scrivite per i blocchi di almacenamento - di solitu arrays o strutture.

    Sopra circa a lettura è a scrittura di u schedariu C appartene à HDV Phoelectron Technology Ltd., una operazione tecnica di software.È a cumpagnia per l'equipaggiu di rete (cum'è: ACONU/ cumunicazioneONU/ intelligenteONU/ fibraONU, etc.) hà riunitu un putente squadra di software, per ogni cliente persunalizà e richieste esclusive chì ne necessitanu, lasciate ancu i nostri prudutti più intelligenti è avanzati.



    web聊天