• Giga@hdv-tech.com
  • 24 цагийн онлайн үйлчилгээ:
    • 7189078c
    • sns03
    • 6660e33e
    • youtube 拷贝
    • инстаграм

    C, Баримт бичиг унших, бичих

    Шуудангийн цаг: 2023 оны 8-р сарын 11

    Си програмист нь текст файл эсвэл хоёртын файлыг хэрхэн үүсгэх, нээх, хаах талаар тайлбарладаг.

    Файл гэдэг нь текст файл эсвэл хоёртын файл аль нь ч бай C хэл нь дээд түвшний функцүүдэд хандах боломжийг олгодог төдийгүй хадгалах төхөөрөмж дээрх файлуудыг боловсруулах үндсэн (OS) дуудлагыг өгдөг. . Энэ бүлэгт баримт бичгийн менежментийн чухал дуудлагуудыг тайлбарлах болно.

    нээлттэй файл

    Ихэвчлэн fopen () функцийг ашиглан шинэ файл үүсгэх эсвэл байгаа файлыг нээхэд энэ дуудлага нь урсгалыг удирдахад шаардлагатай бүх мэдээллийг агуулсан FILE төрлийн объектыг эхлүүлдэг. Энэ функцийн дуудлагын прототип энд байна:

    FILE *fopen (const char * файлын нэр, const char * горим);

    Энд файлын нэр нь файлыг нэрлэх мөр бөгөөд хандалтын горимын утга нь дараах утгуудын аль нэг байж болно.

    загвар

    тайлбар

    r

    Унших боломжийг олгодог одоо байгаа текст файлыг нээнэ үү.

    w

    Файл руу бичих боломжийг олгодог текст файлыг нээнэ үү. Хэрэв файл байхгүй бол шинэ файл үүсгэнэ. Энд таны програм файлын эхнээс агуулгыг бичдэг. Хэрэв файл байгаа бол түүнийг тэг урттай болгож, дахин бичих болно.

    a

    Текст файлыг нээж, файл руу хавсаргах горимоор бичнэ үү. Хэрэв файл байхгүй бол шинэ файл үүсгэнэ. Энд таны програм байгаа файлд агуулгыг хавсаргана.

    r+

    Файлыг унших, бичих боломжийг олгодог текст файлыг нээнэ үү.

    w+

    Файлыг унших, бичих боломжийг олгодог текст файлыг нээнэ үү. Хэрэв файл аль хэдийн байгаа бол файлыг тэг урттай болгож тайрах ба хэрэв файл байхгүй бол шинэ файл үүсгэнэ.

    a+

    Файлыг унших, бичих боломжийг олгодог текст файлыг нээнэ үү. Хэрэв файл байхгүй бол шинэ файл үүсгэнэ. Унших нь файлын эхнээс эхлэх ба бичих нь зөвхөн хавсаргах горимд байна.

    Хэрэв хоёртын файлыг боловсруулсан бол дээрхийг солихын тулд дараах хандалтын горимыг ашиглана уу.

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

    хаалттай файл

    Файлыг хаахын тулд fclose() функцийг ашиглана уу. Функцийн прототип нь дараах байдалтай байна.

    int fclose (FILE *fp );

    • Хэрэв файл амжилттай хаагдсан бол fclose() функц тэгийг буцаана, алдаа нь EOF буцаана. Энэ функц нь үнэндээ буферээс өгөгдлийг устгаж, файлыг хааж, тухайн файлд ашигласан бүх санах ойг чөлөөлдөг. EOF нь stdio.h толгой файлд тодорхойлогдсон тогтмол юм

    С стандарт номын сан нь файлуудыг тэмдэгтээр эсвэл тогтмол урттай мөр болгон унших, бичих төрөл бүрийн функцээр хангадаг.

    Файл руу бичнэ үү

    Урсгалд тэмдэгт бичих хамгийн энгийн функцууд энд байна:

    int fputc ( int c , FILE *fp );

    fputc () функц нь c параметрийн тэмдэгтийн утгыг fp-ийн зааж буй гаралтын урсгал руу бичдэг. Хэрэв бичилт амжилттай болбол бичсэн тэмдэгт болон алдаа гарвал EOF-г буцаана. Та урсгал руу тэгээр төгссөн мөр бичихийн тулд дараах функцийг ашиглаж болно.

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

    fputs () функц нь fp-ийн зааж байгаа гаралтын урсгал руу s мөрийг бичдэг. Хэрэв бичилт амжилттай бол сөрөг бус утгыг, алдаа гарвал EOF-ийг буцаана. Та мөн int fprintf функцийг ашиглаж болно (FILE * fp, const char * формат,...) файлд мөр бичих. Дараах жишээг үзээрэй.

    Тэмдэглэл: Танд tmp лавлах байгаа эсэхийг шалгаарай, хэрэв байхгүй бол эхлээд үүнийг компьютер дээрээ үүсгэх хэрэгтэй.

    / tmp нь ихэвчлэн Линукс систем дээрх түр зуурын лавлах юм. Хэрэв та Windows систем дээр ажиллаж байгаа бол үүнийг локал орчинд байгаа сан болгон өөрчлөх хэрэгтэй, тухайлбал: C: \ tmp, D: \ tmp гэх мэт.

    амьд жишээ

    #оруулна int main () { FILE *fp = NULL ; fp = fopen ("/tmp/test.txt ", "w+"); fprintf (fp , "Энэ нь fprintf-г шалгаж байна...\n "); fputs ("Энэ нь fputs-ийг шалгаж байна...\n ", fp ); fclose (fp); }

    Дээрх кодыг эмхэтгэн ажиллуулсны дараа / tmp директорт test.txt шинэ файл үүсгэнэ. Мөн хоёр өөр функц ашиглан хоёр мөрөнд бичдэг. Дараа нь энэ файлыг уншъя.

    Файлыг уншина уу

    Дараах нь файлаас нэг тэмдэгт унших хамгийн энгийн функц юм.

    int fgetc (FILE * fp);

    fgetc () функц нь оролтын файлаас fp зааж буй тэмдэгтийг уншдаг. Буцах утга нь унших тэмдэгт ба алдаа гарвал EOF байна. Дараах функц нь урсгалаас мөрийг унших боломжийг танд олгоно.

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

    fgets () функц нь fp-ээр удирдуулсан оролтын урсгалаас n-1 тэмдэгтүүдийг уншдаг. Энэ нь уншсан мөрийг буфер буф руу хуулж, төгсгөлд нь хоосон тэмдэгт нэмж мөрийг дуусгадаг.

    Хэрэв энэ функц нь сүүлчийн тэмдэгтийг уншихаас өмнө тасархай мөрийн тэмдэгт '\ n' эсвэл файлын төгсгөлийн EOF-тай тулгарвал зөвхөн уншсан тэмдэгтүүд, түүний дотор мөрийн завсарлага руу буцна. Мөн та int fscanf (FILE * fp, const char * формат,...) функцийг ашиглаж файлаас мөрийг уншиж болох боловч эхний зай болон мөр тасрах үед уншихаа болино.

    амьд жишээ

    #оруулна int main () { FILE *fp = NULL ; char buff [255]; fp = fopen ("/tmp/test.txt ", "r"); fscanf (fp , "%s ", buff); printf ("1: %s \n ", буфф); fgets (buff , 255, (FILE *)fp ); printf ("2: %s \n ", буфф); fgets (buff , 255, (FILE *)fp ); printf ("3: %s \n ", буфф); fclose (fp); }

    Дээрх кодыг эмхэтгэж гүйцэтгэх үед өмнөх хэсэгт үүсгэсэн файлуудыг уншиж дараах үр дүнг гаргана.

    1: Энэ 2: fprintf-г туршиж байна...

    3: Энэ нь fputs-ийг шалгаж байна...

    Нэгдүгээрт, fscanf()-ын арга нь зөвхөн This-г уншдаг.Учир нь энэ нь ард зайтай тулгардаг. Хоёрдугаарт, мөрийн төгсгөл хүртэл үлдсэн хэсгийг уншихын тулд functon fgets () гэж дуудна. Эцэст нь хоёр дахь мөрийг бүрэн уншихын тулд fgets () руу залгана уу.

    Хоёртын I / O функц

    Хоёртын оролт гаралтын хувьд дараах хоёр функцийг ашигладаг.

    size_t fread (хүчингүй *ptr , size_t элементийн хэмжээ , хэмжээ_t элементийн_тоо , FILE *a_file ); size_t fwrite (const void *ptr , size_t size_of_element , size_t элементийн_тоо , FILE *a_file );

    Энэ хоёр функц нь хадгалах блокуудад зориулагдсан бөгөөд ихэвчлэн массив эсвэл бүтцэд зориулагдсан байдаг.

    Дээрх C файлыг унших, бичих нь програм хангамжийн техникийн үйл ажиллагаа болох HDV Phoelectron Technology Ltd.-д хамаарна. Мөн сүлжээтэй холбоотой тоног төхөөрөмжийн компани (жишээлбэл: ACONU/ харилцаа холбооONU/ ухаалагONU/ эслэгONU, гэх мэт) хүчирхэг програм хангамжийн багийг цуглуулсан бөгөөд хэрэглэгч бүр хэрэгцээтэй байгаа онцгой эрэлт хэрэгцээг өөрчлөх, мөн манай бүтээгдэхүүнийг илүү ухаалаг, дэвшилтэт болгох боломжийг олгодог.



    вэб 聊天