C پروگراممېرنىڭ تېكىست ھۆججىتى ياكى ئىككىلىك ھۆججەتنى قانداق قۇرۇش ، ئېچىش ۋە تاقاشنى تەسۋىرلەيدۇ.
ھۆججەت ، مەيلى تېكىست ھۆججىتى ياكى ئىككىلىك ھۆججەت بولسۇن ، C تىل بولسۇن ، بىر قاتار بايتلارنى كۆرسىتىدۇ ، ئۇ يۇقىرى قاتلامدىكى ئىقتىدارلارنى زىيارەت قىلىپلا قالماي ، ساقلاش ئۈسكۈنىسىدىكى ھۆججەتلەرنى بىر تەرەپ قىلىشتىكى ئاساسىي (OS) چاقىرىشنىمۇ تەمىنلەيدۇ. . بۇ باب ھۆججەت باشقۇرۇشتىكى مۇھىم چاقىرىقلارنى چۈشەندۈرۈپ بېرىدۇ.
ئوچۇق ھۆججەت
ئادەتتە fopen () فۇنكسىيەسىنى ئىشلىتىپ يېڭى ھۆججەت قۇرۇش ياكى مەۋجۇت ھۆججەتنى ئېچىش ئۈچۈن ، بۇ چاقىرىش FILE تىپىدىكى ئوبيېكتنى قوزغىتىدۇ ، بۇ ئېقىم مىقدارىنى كونترول قىلىش ئۈچۈن زۆرۈر بولغان بارلىق ئۇچۇرلارنى ئۆز ئىچىگە ئالىدۇ. بۇ ئىقتىدار چاقىرىشنىڭ ئەسلى تىپى:
FILE * fopen (const char * ھۆججەت ئىسمى ، const char * ھالىتى);
بۇ يەردە ھۆججەت ئىسمى ھۆججەتكە ئىسىم قويۇش ئۈچۈن بىر قۇر بولۇپ ، زىيارەت ھالىتىنىڭ قىممىتى تۆۋەندىكى قىممەتلەرنىڭ بىرى بولالايدۇ:
ئەندىزە | description |
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 ماۋزۇ ھۆججىتىدە ئېنىقلىما بېرىلگەن
C ئۆلچەملىك كۇتۇپخانا ھۆججەتلەرنى ھەرپلەر ئارقىلىق ياكى مۇقىم ئۇزۇنلۇقتا ئوقۇش ۋە يېزىش ئۈچۈن ھەر خىل ئىقتىدارلار بىلەن تەمىنلەيدۇ.
ھۆججەتكە يېزىڭ
بۇ يەردە ئېقىنغا ھەرپ يېزىشتىكى ئەڭ ئاددىي ئىقتىدارلار:
int fputc (int c, FILE * fp);
Fputc () فۇنكىسىيەسى c پارامېتىرنىڭ ھەرپ قىممىتىنى fp كۆرسەتكەن چىقىرىش ئېقىمىغا يازىدۇ. ئەگەر يېزىش مۇۋەپپەقىيەتلىك بولسا ، خاتالىق كۆرۈلسە يېزىلغان ھەرپ ۋە EOF نى قايتۇرىدۇ. تۆۋەندىكى ئىقتىدارنى ئىشلىتىپ ئېقىنغا نۆل بىلەن ئاخىرلاشقان بىر قۇر يازالايسىز:
int fputs (const char * s, FILE * fp);
فۇنكىسىيە fputs () فۇنكىسىيەنى fp كۆرسەتكەن چىقىرىش ئېقىمىغا يېزىپ بېرىدۇ. ئەگەر يازغۇچىلار مۇۋەپپەقىيەت قازانسا ، مەنپىي بولمىغان قىممەت ۋە خاتالىق كۆرۈلسە EOF نى قايتۇرىدۇ. سىز يەنە int fprintf (FILE * fp ، const char * فورماتى ، ...) فۇنكىسىيەسىنى ئىشلىتەلەيسىز. تۆۋەندىكى مىسالنى سىناپ بېقىڭ:
ئەسكەرتىش: ئىشلەتكىلى بولىدىغان tmp مۇندەرىجىسى بارلىقىنى جەزملەشتۈرۈڭ ، ئەگەر ئۇ بولمىسا ، ئالدى بىلەن ئۇنى كومپيۇتېرىڭىزدا قۇرۇشىڭىز كېرەك.
/ tmp ئادەتتە Linux سىستېمىسىدىكى ۋاقىتلىق مۇندەرىجە. ئەگەر Windows سىستېمىسىدا ئىجرا قىلسىڭىز ، ئۇنى يەرلىك مۇھىتتىكى مەۋجۇت مۇندەرىجىگە ئۆزگەرتىشىڭىز كېرەك ، مەسىلەن: C: \ tmp, D: \ tmp قاتارلىقلار.
جانلىق مىسال
#include
يۇقارقى كود تۈزۈلۈپ ئىجرا قىلىنغاندا ، ئۇ يېڭى ھۆججەت test.txt inthe / tmp مۇندەرىجىسى قۇرىدۇ. ھەمدە ئوخشىمىغان ئىككى خىل ئىقتىدارنى ئىشلىتىپ ئىككى قۇرغا يازىدۇ. بۇ ھۆججەتنى كېيىنكى قەدەمدە ئوقۇيمىز.
ھۆججەتنى ئوقۇڭ
تۆۋەندىكىسى ھۆججەتتىكى يەككە ھەرپنى ئوقۇشتىكى ئەڭ ئاددىي ئىقتىدار:
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 * فورماتى ، ...) فۇنكسىيەسىنى ئىشلىتىپ ھۆججەتتىكى تىزمىنى ئوقۇيالايسىز ، ئەمما بىرىنچى بوشلۇق ۋە قۇر ئۈزۈلۈپ قالغاندا ئۇ ئوقۇشتىن توختايدۇ.
جانلىق مىسال
#include
يۇقارقى كود تۈزۈلۈپ ئىجرا قىلىنغاندا ، ئالدىنقى بۆلەكتە قۇرۇلغان ھۆججەتلەرنى ئوقۇيدۇ ، تۆۋەندىكىدەك نەتىجىلەرنى بېرىدۇ:
1: بۇ 2: fprintf نى سىناق قىلىۋاتىدۇ ...
3: بۇ fputs نى سىناق قىلىۋاتىدۇ ...
ئالدى بىلەن ، fscanf () ئۇسۇلى پەقەت بۇنىلا ئوقۇيدۇ. چۈنكى ئۇ كەينىدىكى بوشلۇققا دۇچ كېلىدۇ. ئىككىنچىدىن ، فۇنكسىيە fgets () غا تېلېفون قىلىپ ، قالغان قىسمىنى قۇرنىڭ ئاخىرىغىچە ئوقۇڭ. ئاخىرىدا ، ئىككىنچى قۇرنى تولۇق ئوقۇش ئۈچۈن fgets () غا تېلېفون قىلىڭ.
ئىككىلىك I / O ئىقتىدارى
ئىككىلىك كىرگۈزۈش ۋە چىقىرىش ئۈچۈن تۆۋەندىكى ئىككى ئىقتىدار ئىشلىتىلىدۇ:
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);
ھەر ئىككى ئىقتىدار ساقلاش بۆلەكلىرى ئۈچۈن ئوقۇلىدۇ ۋە يېزىلىدۇ.
C ھۆججەت ئوقۇش ۋە يېزىش ھەققىدە يۇقىرىدا يۇمشاق دېتال تېخنىكىلىق مەشغۇلات HDV Phoelectron Technology چەكلىك شىركىتىگە تەۋە. ھەمدە تورغا مۇناسىۋەتلىك ئۈسكۈنىلەر ئۈچۈن شىركەت (مەسىلەن: ACONU/ ئالاقەONU/ ئەقىللىقONU/ تالاONUقاتارلىقلار) كۈچلۈك يۇمشاق دېتال قوشۇنىنى بىر يەرگە توپلىدى ، ھەر بىر خېرىدار ئۆزىگە ئېھتىياجلىق بولغان ئالاھىدە تەلەپلەرنى خاسلاشتۇرىدۇ ، مەھسۇلاتلىرىمىزنى تېخىمۇ ئەقىللىق ۋە ئىلغار قىلىدۇ.