• Giga@hdv-tech.com
  • Iṣẹ Ayelujara 24H:
    • 7189078c
    • sns03
    • 6660e33e
    • youtube 拷贝
    • instagram

    C, Iwe kika ati kikọ

    Akoko ifiweranṣẹ: Oṣu Kẹjọ-11-2023

    Apejuwe bi olupilẹṣẹ C ṣe ṣẹda, ṣi, ati tilekun faili ọrọ, tabi faili alakomeji kan.

    Faili kan, tumọ si lẹsẹsẹ awọn baiti, boya o jẹ faili ọrọ tabi faili alakomeji, Ede C, kii ṣe pese iraye si awọn iṣẹ ipele oke nikan, ṣugbọn tun pese ipe ipilẹ (OS) lati ṣe ilana awọn faili lori ẹrọ ibi ipamọ. . Abala yii yoo ṣe alaye awọn ipe pataki ni iṣakoso iwe.

    ìmọ-faili

    Nigbagbogbo lilo iṣẹ fopen () lati ṣẹda faili tuntun tabi ṣii faili ti o wa tẹlẹ, ipe yii ṣe ipilẹṣẹ ohun kan ti iru FILE ti o ni gbogbo alaye pataki lati ṣakoso ṣiṣan naa. Eyi ni apẹrẹ ti ipe iṣẹ yii:

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

    Nibi orukọ faili jẹ okun lati lorukọ faili kan, iye ipo wiwọle le jẹ ọkan ninu awọn iye wọnyi:

    apẹrẹ

    apejuwe

    r

    Ṣii faili ọrọ ti o wa tẹlẹ ti o fun laaye lati ka.

    w

    Ṣii faili ọrọ ti o fun laaye kikọ si faili naa. Ti faili ko ba si, faili titun kan yoo ṣẹda. Nibi, eto rẹ kọ akoonu lati ibẹrẹ faili naa. Ti faili naa ba wa, yoo ge ge si gigun odo ati ki o tun kọ.

    a

    Ṣii faili ọrọ ki o kọ si faili ni ipo ifikun. Ti faili ko ba si, faili titun kan yoo ṣẹda. Nibi, eto rẹ ṣafikun akoonu si awọn faili ti o ni tẹlẹ.

    r+

    Ṣii faili ọrọ ti o fun ọ laaye lati ka ati kọ faili naa.

    w+

    Ṣii faili ọrọ ti o fun ọ laaye lati ka ati kọ faili naa. Ti faili naa ba wa tẹlẹ, faili naa ti ge si gigun odo, ati pe ti faili ko ba si, faili tuntun yoo ṣẹda.

    a+

    Ṣii faili ọrọ ti o fun ọ laaye lati ka ati kọ faili naa. Ti faili ko ba si, faili titun kan yoo ṣẹda. Awọn kika bẹrẹ ni ibẹrẹ ti awọn faili, ati awọn kikọ jẹ nikan ni append mode.

    Ti faili alakomeji ti ni ilọsiwaju, lo ipo iwọle atẹle lati rọpo eyi ti o wa loke:

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

    pipade faili

    Lati pa faili naa, jọwọ lo iṣẹ fclose(). Afọwọkọ ti iṣẹ jẹ bi atẹle:

    int fclose ( FILE * fp );

    • Ti faili naa ba ti wa ni pipade ni aṣeyọri, iṣẹ fclose () pada odo, ati pe ti aṣiṣe ba pada EOF. Iṣẹ yii, ni otitọ, yọ data kuro lati inu ifipamọ, tilekun faili naa, ati tu gbogbo iranti ti a lo fun faili yẹn silẹ. EOF jẹ asọye igbagbogbo ninu faili akọsori stdio.h

    Ile-ikawe boṣewa C n pese awọn iṣẹ lọpọlọpọ lati ka ati kọ awọn faili nipasẹ awọn kikọ tabi bi okun gigun ti o wa titi.

    Kọ si faili naa

    Eyi ni awọn iṣẹ ti o rọrun julọ lati kọ awọn ohun kikọ si ṣiṣan:

    int fputc ( int c , FILE * fp );

    Iṣẹ fputc () kọ iye ohun kikọ ti paramita c sinu ṣiṣanjade ti fp tọka si. Ti awọn kikọ ba ṣaṣeyọri, o pada kikọ kikọ ati EOF ti aṣiṣe ba waye. O le lo iṣẹ atẹle lati kọ okun kan ti o pari pẹlu asan si ṣiṣan:

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

    Iṣẹ fputs () kọ okun s si ṣiṣan ti o wu jade nibiti fp tọka si. Ti awọn kikọ ba ṣaṣeyọri, o pada iye ti kii ṣe odi ati EOF ti aṣiṣe ba waye. O tun le lo iṣẹ int fprintf (FILE * fp, const char * kika,...) kọ okun kan si faili naa. Gbiyanju apẹẹrẹ wọnyi:

    Akiyesi: Rii daju pe o ni itọsọna tmp ti o wa, ati pe ti ko ba si, o nilo lati ṣẹda rẹ lori kọnputa rẹ ni akọkọ.

    / tmp nigbagbogbo jẹ itọsọna igba diẹ lori eto Linux. Ti o ba ṣiṣẹ lori eto Windows, o nilo lati yipada si itọsọna ti o wa ni agbegbe agbegbe, gẹgẹbi: C: \ tmp, D: \ tmp, ati bẹbẹ lọ.

    apẹẹrẹ alãye

    #pẹlu int akọkọ () {FILE *fp = NULL; fp = fopen ("/tmp/test.txt ", "w +"); fprintf (fp , "Eyi jẹ idanwo fun fprintf...\n"); fputs ("Eyi jẹ idanwo fun fputs...\n ", fp ); fclose (fp); }

    Nigbati koodu ti o wa loke ti wa ni akopọ ati ṣiṣe, o ṣẹda idanwo faili tuntun.txt inthe / tmp liana. Ati kọwe si awọn ila meji nipa lilo awọn iṣẹ oriṣiriṣi meji. Jẹ ki a ka faili yii ni atẹle.

    Ka faili naa

    Atẹle ni iṣẹ ti o rọrun julọ lati ka ohun kikọ kan lati faili kan:

    int fgetc ( FILE * fp );

    Iṣẹ fgetc () ka ohun kikọ kan lati faili igbewọle si eyiti fp tọka si. Iwọn ipadabọ jẹ ohun kikọ kika ati EOF ti aṣiṣe ba waye. Iṣẹ atẹle n gba ọ laaye lati ka okun kan lati inu ṣiṣan kan:

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

    Iṣẹ fgets () n ka awọn ohun kikọ n-1 lati inu ṣiṣan titẹ sii ti o dari fp. O daakọ okun kika si buffer buffer ati ki o ṣafikun ohun kikọ asan ni ipari lati fopin si okun naa.

    Ti iṣẹ yii ba pade ohun kikọ laini fifọ '\ n' tabi EOF ti ipari faili ṣaaju kika kikọ ti o kẹhin, lẹhinna pada nikan si awọn kikọ kika, pẹlu awọn fifọ laini. O tun le lo int fscanf (FILE * fp, const char * ọna kika,...) iṣẹ lati ka okun lati faili naa, ṣugbọn o da kika kika nigbati o ba pade aaye akọkọ ati fifọ laini.

    apẹẹrẹ alãye

    #pẹlu int akọkọ () {FILE *fp = NULL; ẹrẹkẹ [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); }

    Nigbati koodu ti o wa loke ti wa ni akopọ ati ṣiṣe, o ka awọn faili ti o ṣẹda ni apakan ti tẹlẹ, ti n ṣe awọn abajade atẹle:

    1: 2 yii: n ṣe idanwo fun fprintf…

    3: Eyi jẹ idanwo fun fputs…

    Ni akọkọ, ọna ti fscanf () nikan ka Eyi .nitori pe o ba pade aaye kan ni ẹhin. Ẹlẹẹkeji, pe functon fgets () lati ka apakan ti o ku titi ti opin ila naa. Lakotan, pe fgets () lati ka ila keji patapata.

    Alakomeji I / O iṣẹ

    Awọn iṣẹ meji wọnyi ni a lo fun titẹ sii alakomeji ati iṣelọpọ:

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

    Awọn iṣẹ mejeeji ni a ka ati kọ fun awọn bulọọki ibi ipamọ-nigbagbogbo awọn eto tabi awọn ẹya.

    Loke nipa kika faili C ati kikọ jẹ ti HDV Phoelectron Technology Ltd., iṣẹ imọ-ẹrọ sọfitiwia kan. Ati ile-iṣẹ fun ohun elo ti o ni ibatan nẹtiwọọki (bii: ACONU/ ibaraẹnisọrọONU/ oyeONU/ okunONU, ati bẹbẹ lọ) ti ṣajọpọ ẹgbẹ sọfitiwia ti o lagbara, fun gbogbo alabara ṣe akanṣe awọn ibeere iyasọtọ ti o nilo rẹ, tun jẹ ki awọn ọja wa ni oye ati ilọsiwaju diẹ sii.



    ayelujara 聊天