• Giga@hdv-tech.com
  • 24 saat onlayn xidmət:
    • 7189078c
    • sns03
    • 6660e33e
    • youtube 拷贝
    • instagram

    C, Sənədin oxunması və yazılması

    Göndərmə vaxtı: 11 avqust 2023-cü il

    C proqramçısının mətn faylını və ya ikili faylı necə yaratdığını, açdığını və bağladığını təsvir edir.

    Fayl, mətn faylı və ya ikili fayl olmasından asılı olmayaraq bir sıra bayt deməkdir, C Dili, yalnız yuxarı səviyyəli funksiyalara girişi təmin etmir, həm də yaddaş cihazında faylları emal etmək üçün əsas (OS) çağırışını təmin edir. .Bu fəsildə sənəd idarəetməsində vacib çağırışlar izah ediləcək.

    faylı açın

    Adətən yeni fayl yaratmaq və ya mövcud faylı açmaq üçün fopen () funksiyasından istifadə edərək, bu çağırış axını idarə etmək üçün bütün lazımi məlumatları ehtiva edən FILE tipli obyekti işə salır.Budur bu funksiya çağırışının prototipi:

    FILE *fopen ( const char * fayl adı , const char * rejimi );

    Burada fayl adı faylı adlandırmaq üçün sətirdir, giriş rejiminin dəyəri aşağıdakı dəyərlərdən biri ola bilər:

    naxış

    təsviri

    r

    Oxumağa imkan verən mövcud mətn faylını açın.

    w

    Fayla yazmağa imkan verən mətn faylını açın.Fayl mövcud deyilsə, yeni fayl yaradılır.Burada proqramınız məzmunu faylın əvvəlindən yazır.Əgər fayl varsa, o, sıfır uzunluğa kəsiləcək və yenidən yazılacaq.

    a

    Mətn faylını açın və əlavə rejimində fayla yazın.Fayl mövcud deyilsə, yeni fayl yaradılır.Burada proqramınız artıq mövcud olan fayllara məzmun əlavə edir.

    r+

    Faylı oxumağa və yazmağa imkan verən mətn faylı açın.

    w+

    Faylı oxumağa və yazmağa imkan verən mətn faylı açın.Əgər fayl artıq mövcuddursa, fayl sıfır uzunluğa qədər kəsilir və fayl mövcud deyilsə, yeni fayl yaradılır.

    a+

    Faylı oxumağa və yazmağa imkan verən mətn faylı açın.Fayl mövcud deyilsə, yeni fayl yaradılır.Oxuma faylın əvvəlindən başlayır və yazma yalnız əlavə rejimindədir.

    İkili fayl işlənirsə, yuxarıdakıları əvəz etmək üçün aşağıdakı giriş rejimindən istifadə edin:

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

    qapalı fayl

    Faylı bağlamaq üçün fclose() funksiyasından istifadə edin.Funksiyanın prototipi aşağıdakı kimidir:

    int fclose (FILE *fp );

    • Fayl uğurla bağlanarsa, fclose() funksiyası sıfır, səhv isə EOF qaytarır.Bu funksiya, əslində, məlumatları buferdən çıxarır, faylı bağlayır və həmin fayl üçün istifadə olunan bütün yaddaşı buraxır.EOF stdio.h başlıq faylında müəyyən edilmiş sabitdir

    C standart kitabxanası faylları simvollar və ya sabit uzunluqlu sətir kimi oxumaq və yazmaq üçün müxtəlif funksiyaları təmin edir.

    Fayla yazın

    Axına simvol yazmaq üçün ən sadə funksiyalar bunlardır:

    int fputc ( int c , FILE *fp );

    fputc () funksiyası c parametrinin simvol dəyərini fp-nin göstərdiyi çıxış axınına yazır.Yazılar uğurlu olarsa, səhv baş verərsə, yazılı simvolu və EOF-ni qaytarır.Axına null ilə bitən sətir yazmaq üçün aşağıdakı funksiyadan istifadə edə bilərsiniz:

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

    fputs () funksiyası fp-nin işarə etdiyi çıxış axınına s sətirini yazır.Yazılar uğurlu olarsa, mənfi olmayan bir dəyər və xəta baş verərsə, EOF qaytarır.Siz həmçinin int fprintf funksiyasından istifadə edə bilərsiniz (FILE * fp, const char * formatı,...) fayla sətir yazır.Aşağıdakı nümunəni sınayın:

    Qeyd:Mövcud tmp qovluğunun olduğundan əmin olun və o, mövcud deyilsə, əvvəlcə onu kompüterinizdə yaratmalısınız.

    / tmp adətən Linux sistemində müvəqqəti qovluqdur.Windows sistemində işlədirsinizsə, onu yerli mühitdə mövcud olan kataloqa dəyişdirməlisiniz, məsələn: C: \ tmp, D: \ tmp və s.

    canlı nümunə

    #daxildirint main () { FAYL *fp = NULL ;fp = fopen ("/tmp/test.txt ", "w+");fprintf (fp , "Bu fprintf üçün sınaqdan keçirilir...\n ");fputs ("Bu, fputs üçün sınaqdan keçirilir...\n ", fp );fclose (fp );}

    Yuxarıdakı kod tərtib edildikdə və icra edildikdə, / tmp qovluğunda yeni test.txt faylı yaradır.Və iki fərqli funksiyadan istifadə edərək iki sətirə yazır.Gəlin bu faylı növbəti oxuyaq.

    Faylı oxuyun

    Aşağıdakılar fayldan bir simvolu oxumaq üçün ən sadə funksiyadır:

    int fgetc (FILE * fp );

    fgetc () funksiyası fp-nin işarə etdiyi giriş faylından simvolu oxuyur.Qayıdış dəyəri oxunmuş simvol və səhv baş verdikdə EOF-dir.Aşağıdakı funksiya axından sətri oxumağa imkan verir:

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

    fgets () funksiyası fp tərəfindən idarə olunan giriş axınından n-1 simvol oxuyur.O, oxunmuş sətri bufer bufuna kopyalayır və sətri dayandırmaq üçün sonuna null simvol əlavə edir.

    Bu funksiya sonuncu simvolu oxumazdan əvvəl sınıq sətir simvolu '\ n' və ya faylın sonundakı EOF ilə qarşılaşarsa, o zaman sətir fasilələri daxil olmaqla yalnız oxunan simvollara qayıdır.Siz həmçinin fayldan sətri oxumaq üçün int fscanf (FILE * fp, const char * format,...) funksiyasından istifadə edə bilərsiniz, lakin ilk boşluq və sətir kəsilməsi ilə qarşılaşdıqda oxumağı dayandırır.

    canlı nümunə

    #daxildirint main () { FAYL *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 );}

    Yuxarıdakı kod tərtib edildikdə və icra edildikdə, əvvəlki bölmədə yaradılmış faylları oxuyur və aşağıdakı nəticələri verir:

    1: Bu 2: fprintf üçün sınaqdan keçirilir...

    3: Bu, fputs üçün sınaqdır...

    Birincisi, fscanf() metodu yalnız Bunu oxuyur.Çünki o, arxada boşluqla qarşılaşır.İkincisi, qalan hissəni xəttin sonuna qədər oxumaq üçün functon fgets () çağırın.Nəhayət, ikinci sıranı tam oxumaq üçün fgets () çağırın.

    Binar I/O funksiyası

    İkili giriş və çıxış üçün aşağıdakı iki funksiya istifadə olunur:

    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_elementlər , size_t elements_sayı , FILE *a_file );

    Hər iki funksiya saxlama blokları - adətən massivlər və ya strukturlar üçün oxunur və yazılır.

    Yuxarıdakı C faylının oxunması və yazılması proqram təminatının texniki əməliyyatı olan HDV Phoelectron Technology Ltd.-yə məxsusdur.Şəbəkə ilə əlaqəli avadanlıqlar üçün şirkət (məsələn: ACONU/ rabitəONU/ ağıllıONU/ lifONU, və s.) güclü proqram təminatı komandasını bir araya gətirdi, hər bir müştəri ehtiyacı olan eksklüziv tələbləri fərdiləşdirin, həmçinin məhsullarımızı daha ağıllı və təkmil etsin.



    web 聊天