• Giga@hdv-tech.com
  • 24H የመስመር ላይ አገልግሎት
    • 7189078c
    • sns03
    • 6660e33e
    • youtube 拷贝
    • instagram

    ሐ፣ ሰነድ ማንበብ እና መጻፍ

    የልጥፍ ጊዜ፡- ኦገስት-11-2023

    የ C ፕሮግራም አድራጊው የጽሑፍ ፋይልን ወይም ሁለትዮሽ ፋይልን እንዴት እንደሚፈጥር፣ እንደሚከፍት እና እንደሚዘጋ ይገልጻል።

    ፋይል ማለት ተከታታይ ባይት ነው፣ የጽሑፍ ፋይልም ይሁን ሁለትዮሽ ፋይል፣ ሲ ቋንቋ፣ ለከፍተኛ ደረጃ ተግባራት መዳረሻን ብቻ ሳይሆን በማከማቻ መሳሪያው ላይ ፋይሎችን ለመስራት ዋናውን (OS) ጥሪ ያቀርባል። . ይህ ምዕራፍ በሰነድ አስተዳደር ውስጥ ያሉትን አስፈላጊ ጥሪዎች ያብራራል.

    ክፍት-ፋይል

    አዲስ ፋይል ለመፍጠር ወይም ነባር ፋይል ለመክፈት ብዙውን ጊዜ የ fopen () ተግባርን በመጠቀም ይህ ጥሪ ፍሰቱን ለመቆጣጠር ሁሉንም አስፈላጊ መረጃዎችን የያዘ የ FILE አይነት ነገርን ይጀምራል። የዚህ ተግባር ጥሪ ምሳሌው ይኸውና፡-

    ፋይል * ፎፔን (const ቻር * የፋይል ስም ፣ ኮንስት ቻር * ሁነታ);

    እዚህ የፋይል ስም ፋይልን ለመሰየም ሕብረቁምፊ ነው፣ የመዳረሻ ሁነታ ዋጋ ከሚከተሉት እሴቶች ውስጥ አንዱ ሊሆን ይችላል።

    ስርዓተ-ጥለት

    መግለጫ

    r

    እንዲነበብ የሚያስችለውን ነባር የጽሑፍ ፋይል ይክፈቱ።

    w

    ወደ ፋይሉ መፃፍ የሚፈቅድ የጽሑፍ ፋይል ይክፈቱ። ፋይሉ ከሌለ አዲስ ፋይል ይፈጠራል። እዚህ, ፕሮግራምዎ ይዘቱን ከፋይሉ መጀመሪያ ላይ ይጽፋል. ፋይሉ ካለ ወደ ዜሮ ርዝመት ተቆርጦ እንደገና ይጻፋል።

    a

    የጽሑፍ ፋይል ይክፈቱ እና በአባሪ ሁነታ ወደ ፋይሉ ይፃፉ። ፋይሉ ከሌለ አዲስ ፋይል ይፈጠራል። እዚህ፣ የእርስዎ ፕሮግራም ቀደም ሲል ባሉት ፋይሎች ላይ ይዘትን ይጨምራል።

    r+

    ፋይሉን ለማንበብ እና ለመፃፍ የሚያስችል የጽሑፍ ፋይል ይክፈቱ።

    w+

    ፋይሉን ለማንበብ እና ለመፃፍ የሚያስችል የጽሑፍ ፋይል ይክፈቱ። ፋይሉ ቀድሞውኑ ካለ, ፋይሉ ወደ ዜሮ ርዝመት ተቆርጧል, እና ፋይሉ ከሌለ, አዲስ ፋይል ይፈጠራል.

    a+

    ፋይሉን ለማንበብ እና ለመፃፍ የሚያስችል የጽሑፍ ፋይል ይክፈቱ። ፋይሉ ከሌለ አዲስ ፋይል ይፈጠራል። ንባቡ የሚጀምረው በፋይሉ መጀመሪያ ላይ ነው, እና መፃፍ በአባሪ ሁነታ ላይ ብቻ ነው.

    ሁለትዮሽ ፋይል ከተሰራ፣ ከላይ ያለውን ለመተካት የሚከተለውን የመዳረሻ ሁነታ ይጠቀሙ፡

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

    የተዘጋ ፋይል

    ፋይሉን ለመዝጋት፣ እባክዎ የfclose() ተግባርን ይጠቀሙ። የተግባሩ ምሳሌ የሚከተለው ነው።

    int fclose ( ፋይል * fp);

    • ፋይሉ በተሳካ ሁኔታ ከተዘጋ, የ fclose () ተግባር ዜሮን ይመልሳል, እና ስህተቱ EOF ከተመለሰ. ይህ ተግባር, በእውነቱ, ውሂቡን ከጠባቂው ያስወግዳል, ፋይሉን ይዘጋዋል እና ለዚያ ፋይል ጥቅም ላይ የዋለውን ማህደረ ትውስታ በሙሉ ይለቀቃል. EOF በርዕስ ፋይሉ stdio.h ውስጥ ቋሚ ፍቺ ነው።

    የC መደበኛ ቤተ-መጽሐፍት ፋይሎችን በቁምፊዎች ወይም እንደ ቋሚ ርዝመት ለማንበብ እና ለመፃፍ የተለያዩ ተግባራትን ይሰጣል።

    ወደ ፋይሉ ይፃፉ

    ቁምፊዎችን ወደ ዥረቱ ለመፃፍ በጣም ቀላሉ ተግባራት እነሆ፡-

    int fputc (int c, FILE *fp);

    ተግባር fputc () የመለኪያውን ሐ ቁምፊ እሴት fp ወደሚያመለክተው የውጤት ዥረት ይጽፋል። ጽሁፎቹ የተሳካላቸው ከሆነ, ስህተት ከተፈጠረ የተጻፈውን ገጸ ባህሪ እና EOF ይመልሳል. ወደ ዥረቱ ባዶ የሆነ ሕብረቁምፊ ለመጻፍ የሚከተለውን ተግባር መጠቀም ትችላለህ፡-

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

    ተግባሩ fputs () string s ን fp ወደሚያመለክትበት የውጤት ዥረት ይጽፋል። ጽሁፎቹ ከተሳካላቸው, አሉታዊ ያልሆነ እሴት እና ስህተት ከተፈጠረ EOF ይመልሳል. እንዲሁም የ int fprintf ተግባርን መጠቀም ይችላሉ (FILE * fp, const char * ቅርጸት, ...) በፋይሉ ላይ ሕብረቁምፊ ይጽፋል. የሚከተለውን ምሳሌ ይሞክሩ።

    ማሳሰቢያ፡- የሚገኝ tmp ማውጫ እንዳለህ አረጋግጥ፣ ከሌለ ደግሞ መጀመሪያ በኮምፒውተርህ ላይ መፍጠር አለብህ።

    / tmp ብዙውን ጊዜ በሊኑክስ ሲስተም ላይ ጊዜያዊ ማውጫ ነው። በዊንዶውስ ሲስተም ላይ የሚሰሩ ከሆነ በአከባቢው አከባቢ ውስጥ ወደነበረው ማውጫ መቀየር አለብዎት: C: \ tmp, D: \ tmp, ወዘተ.

    ሕያው ምሳሌ

    #ያካትቱ int ዋና () { ፋይል * fp = NULL; fp = fopen ("/tmp/test.txt", "w+"); fprintf (fp, "ይህ ለfprintf መሞከር ነው ...\n "); fputs ("ይህ ለfputs መሞከር ነው ...\n ", fp); fclose (fp); }

    ከላይ ያለው ኮድ ሲጠናቀር እና ሲተገበር አዲስ ፋይል test.txt inthe/tmp ማውጫ ይፈጥራል። እና ሁለት የተለያዩ ተግባራትን በመጠቀም ወደ ሁለት መስመሮች ይጽፋል. በሚቀጥለው ይህን ፋይል እናንብብ።

    ፋይሉን ያንብቡ

    የሚከተለው ከአንድ ፋይል ውስጥ አንድ ቁምፊ ለማንበብ ቀላሉ ተግባር ነው።

    int fgetc (ፋይል * fp);

    የfgetc () ተግባር ኤፍፒ የሚያመለክትበትን የግቤት ፋይል ቁምፊ ያነባል። የመመለሻ ዋጋው የተነበበ ቁምፊ እና ስህተት ከተፈጠረ EOF ነው. የሚከተለው ተግባር ከዥረት ላይ ሕብረቁምፊ እንዲያነቡ ይፈቅድልዎታል፡

    ቻር * fgets ( ቻር * buf , int n , ፋይል * fp );

    ተግባሩ fgets () n-1 ቁምፊዎችን በfp ከሚመራው የግቤት ዥረት ያነባል። የተነበበውን ሕብረቁምፊ ወደ ቋት ቋት ይገለብጣል እና ሕብረቁምፊውን ለማቋረጥ መጨረሻ ላይ ባዶ ቁምፊን ያስገባል።

    ይህ ተግባር የመጨረሻውን ቁምፊ ከማንበብ በፊት የተሰበረ የመስመር ቁምፊ '\ n' ወይም የፋይሉ መጨረሻ EOF ካጋጠመው, ከዚያም የመስመር መግቻዎችን ጨምሮ ወደ የተነበቡ ቁምፊዎች ብቻ ይመለሳል. እንዲሁም ከፋይሉ ላይ ያለውን ሕብረቁምፊ ለማንበብ int fscanf (FILE * fp, const char * ቅርጸት,...) ተግባር መጠቀም ይችላሉ, ነገር ግን የመጀመሪያውን የቦታ እና የመስመር መግቻ ሲያጋጥሙ ማንበብ ያቆማል.

    ሕያው ምሳሌ

    #ያካትቱ int ዋና () { ፋይል * fp = NULL; ቻር ባፍ [255]; fp = fopen ("/tmp/test.txt", "r"); fscanf (fp, "%s", buff); printf ("1: %s \n ", buff); fgets (buff, 255, (ፋይል *) fp); printf ("2: %s \n ", buff); fgets (buff, 255, (ፋይል *) fp); printf ("3: %s \n ", buff); fclose (fp); }

    ከላይ ያለው ኮድ ሲጠናቀር እና ሲተገበር በቀደመው ክፍል የተፈጠሩትን ፋይሎች ያነባል, የሚከተሉትን ውጤቶች ያመጣል.

    1፡ ይህ 2፡ ለfprintf እየሞከረ ነው...

    3: ይህ ለ fputs እየሞከረ ነው...

    በመጀመሪያ, የ fscanf () ዘዴ ይህንን ብቻ ያነባል. ምክንያቱም ከኋላ ያለው ቦታ ስለሚያጋጥመው. ሁለተኛ፣ የቀረውን ክፍል እስከ መስመሩ መጨረሻ ድረስ ለማንበብ functon fgets () ይደውሉ። በመጨረሻም ሁለተኛውን ረድፍ ሙሉ ለሙሉ ለማንበብ fgets () ይደውሉ።

    ሁለትዮሽ I / O ተግባር

    የሚከተሉት ሁለት ተግባራት ለሁለትዮሽ ግቤት እና ውፅዓት ጥቅም ላይ ይውላሉ።

    የመጠን_t ፍሬድ ( ባዶ * ptr ፣ የንጥረ ነገሮች መጠን_t ፣ የንጥረ ነገሮች ብዛት ፣ ፋይል * ፋይል); size_t fwrite (const void *ptr , size_t size_of_elements , size_t number_of_elements , FILE *a_file);

    ሁለቱም ተግባራት ለማከማቻ ብሎኮች ይነበባሉ እና ይፃፉ - ብዙውን ጊዜ ድርድሮች ወይም መዋቅሮች።

    ስለ C ፋይል ማንበብ እና መጻፍ የ HDV Phoelectron Technology Ltd. የሶፍትዌር ቴክኒካል ኦፕሬሽን ነው። እና ኩባንያው ከአውታረ መረብ ጋር ለተያያዙ መሳሪያዎች (እንደ ACኦኤንዩ/ ግንኙነትኦኤንዩ/ ብልህኦኤንዩ/ ፋይበርኦኤንዩወዘተ) ኃይለኛ የሶፍትዌር ቡድንን ሰብስቧል ፣ ለእያንዳንዱ ደንበኛ የሚያስፈልጋቸውን ልዩ ፍላጎቶች ያበጁ ፣ እንዲሁም ምርቶቻችን የበለጠ ብልህ እና የላቀ ይሁኑ።



    ድር 聊天