• Giga@hdv-tech.com
  • Serviziu in linea 24H:
    • 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, sia un schedariu di testu o un schedariu binariu, C Language, ùn solu furnisce l'accessu à e funzioni di u livellu superiore, ma furnisce ancu a chjama sottostante (OS) per processà i schedari 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

    #include int 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

    #include int 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 una squadra di software putente, per ogni cliente persunalizà e richieste esclusive chì ne necessitanu, lasciate ancu i nostri prudutti più intelligenti è avanzati.



    web聊天