באשרייבט ווי דער C פּראָגראַמיסט קריייץ, אָפּענס און קלאָוזיז אַ טעקסט טעקע אָדער אַ ביינערי טעקע.
א טעקע, מיטל אַ סעריע פון ביטעס, צי עס איז אַ טעקסט טעקע אָדער אַ ביינערי טעקע, C שפּראַך, גיט ניט בלויז אַקסעס צו די שפּיץ פאַנגקשאַנז, אָבער אויך גיט די אַנדערלייינג (אַס) רופן צו פּראָצעס טעקעס אויף די סטאָרידזש מיטל. . דער קאַפּיטל וועט דערקלערן די וויכטיק קאַללס אין דאָקומענט פאַרוואַלטונג.
עפענען-טעקע
יוזשאַוואַלי ניצן די פאָפּען () פֿונקציע צו שאַפֿן אַ נייַע טעקע אָדער עפֿענען אַן יגזיסטינג טעקע, דעם רוף יניטיאַלייזיז אַ כייפעץ פון דעם טיפּ FILE וואָס כּולל אַלע די נייטיק אינפֿאָרמאַציע צו קאָנטראָלירן די לויפן. דאָ איז דער פּראָוטאַטייפּ פון דעם פונקציע רופן:
FILE *fopen (const char * טעקע נאָמען, const char * מאָדע);
דאָ פילענאַמע איז אַ שטריקל צו נאָמען אַ טעקע, די ווערט פון די אַקסעס מאָדע קענען זיין איינער פון די פאלגענדע וואַלועס:
מוסטער | באַשרייַבונג |
r | עפֿענען אַ יגזיסטינג טעקסט טעקע וואָס אַלאַוז עס צו לייענען. |
w | עפֿענען אַ טעקסט טעקע וואָס אַלאַוז שרייבן צו דער טעקע. אויב דער טעקע טוט נישט עקסיסטירן, אַ נייַע טעקע איז באשאפן. דאָ, דיין פּראָגראַם שרייבט די אינהאַלט פון די אָנהייב פון דער טעקע. אויב די טעקע יגזיסץ, עס וועט זיין טראַנגקייטיד צו נול לענג און שייַעך-געשריבן. |
a | עפֿענען אַ טעקסט טעקע און שרייַבן צו דער טעקע אין אַ צוגעבן מאָדע. אויב דער טעקע טוט נישט עקסיסטירן, אַ נייַע טעקע איז באשאפן. דאָ, דיין פּראָגראַם אַפּענדז אינהאַלט צו די טעקעס איר שוין האָבן. |
r+ | עפֿענען אַ טעקסט טעקע וואָס אַלאַוז איר צו לייענען און שרייַבן די טעקע. |
w+ | עפֿענען אַ טעקסט טעקע וואָס אַלאַוז איר צו לייענען און שרייַבן די טעקע. אויב די טעקע איז שוין יגזיסץ, די טעקע איז טראַנגקייטיד צו נול לענג, און אויב די טעקע טוט נישט עקסיסטירן, אַ נייַע טעקע איז באשאפן. |
a+ | עפֿענען אַ טעקסט טעקע וואָס אַלאַוז איר צו לייענען און שרייַבן די טעקע. אויב דער טעקע טוט נישט עקסיסטירן, אַ נייַע טעקע איז באשאפן. די לייענען סטאַרץ אין די אָנהייב פון דער טעקע, און די שרייַבן איז בלויז אין אַפּפּענד מאָדע. |
אויב פּראַסעסט ביינערי טעקע, נוצן די פאלגענדע אַקסעס מאָדע צו פאַרבייַטן די אויבן:
"רב", "וב", "אַב", "רב+", "ר+ב", "וב+", "וו+ב", "אַב+", "א+ב"
פארמאכט טעקע
צו פאַרמאַכן די טעקע, ביטע נוצן די fclose () פֿונקציע. דער פּראָוטאַטייפּ פון די פֿונקציע איז ווי גייט:
int fclose (FILE *fp);
- אויב דער טעקע איז פֿאַרמאַכט הצלחה, די fclose () פֿונקציע קערט נול, און אויב דער טעות קערט EOF. דער פֿונקציע, אין פאַקט, רימוווז די דאַטן פון די באַפער, קלאָוזיז די טעקע און ריליסיז אַלע די זכּרון געניצט פֿאַר דער טעקע. EOF איז אַ קעסיידערדיק דיפיינד אין די כעדער טעקע stdio.h
די C נאָרמאַל ביבליאָטעק גיט פאַרשידן פאַנגקשאַנז צו לייענען און שרייַבן טעקעס דורך אותיות אָדער ווי אַ פאַרפעסטיקט-לענג שטריקל.
שרייב צו דער טעקע
דאָ זענען די סימפּלאַסט פאַנגקשאַנז צו שרייַבן אותיות צו די טייַך:
int fputc (int c, FILE *fp);
די פֿונקציע fputc () שרייבט די כאַראַקטער ווערט פון די פּאַראַמעטער C אין די רעזולטאַט טייַך וואָס די פפּ ווייזט צו. אויב די שרייבט זענען געראָטן, עס קערט די געשריבן כאַראַקטער און די EOF אויב אַ טעות אַקערז. איר קענען נוצן די פאלגענדע פֿונקציע צו שרייַבן אַ שטריקל וואָס ענדיקט זיך מיט אַ נאַל צו דעם טייַך:
int fputs (const char *s, FILE *fp);
די פֿונקציע fputs () שרייבט די שטריקל s צו די רעזולטאַט טייַך ווו די פפּ ווייזט. אויב די שרייבט געראָטן, עס קערט אַ ניט-נעגאַטיוו ווערט און די EOF אויב אַ טעות אַקערז. איר קענט אויך נוצן די פֿונקציע פון int fprintf (FILE * fp, const char * פֿאָרמאַט, ...) שרייבט אַ שטריקל צו דער טעקע. פּרוּווט די פאלגענדע בייַשפּיל:
באַמערקונג: מאַכט זיכער אַז איר האָט אַן בנימצא טמפּ וועגווייַזער, און אויב עס טוט נישט עקסיסטירן, איר דאַרפֿן צו שאַפֿן עס אויף דיין קאָמפּיוטער ערשטער.
/ tmp איז יוזשאַוואַלי אַ צייַטווייַליק וועגווייַזער אויף די לינוקס סיסטעם. אויב איר לויפן אויף די Windows סיסטעם, איר דאַרפֿן צו מאָדיפיצירן עס צו אַן עקסיסטירט וועגווייַזער אין די היגע סוויווע, אַזאַ ווי: C: \ tmp, D: \ tmp, עטק.
לעבעדיק בייַשפּיל
# אַרייַננעמען
ווען די אויבן קאָד איז קאַמפּיילד און עקסאַקיוטאַד, עס קריייץ אַ נייַע טעקע test.txt אין די / tmp וועגווייַזער. און שרייבט צו צוויי שורות ניצן צוויי פאַרשידענע פאַנגקשאַנז. זאל ס לייענען דעם טעקע ווייַטער.
לייענען די טעקע
די פאלגענדע איז די סימפּלאַסט פונקציע צו לייענען אַ איין כאַראַקטער פון אַ טעקע:
int fgetc (FILE * fp);
די fgetc () פֿונקציע לייענט אַ כאַראַקטער פֿון דער אַרייַנשרייַב טעקע צו וואָס די פפּ ווייזט. דער צוריקקער ווערט איז די לייענען כאַראַקטער און די EOF אויב אַ טעות אַקערז. די פאלגענדע פֿונקציע אַלאַוז איר צו לייענען אַ שטריקל פֿון אַ טייַך:
char *fgets (char *buf, int n, FILE *fp);
די פֿונקציע fgets () לייענט n-1 אותיות פון די אַרייַנשרייַב טייַך דירעקטעד דורך פפּ. עס קאַפּיז די לייענען שטריקל צו די באַפער בוף און אַפּפּענדז אַ נאַל כאַראַקטער אין די סוף צו פאַרענדיקן דעם שטריקל.
אויב די פֿונקציע ינקאַונטערז אַ צעבראכן שורה כאַראַקטער '\ n' אָדער די EOF פון די סוף פון טעקע איידער לייענען די לעצטע כאַראַקטער, דעמאָלט נאָר אומגעקערט צו די לייענען אותיות, אַרייַנגערעכנט שורה ברייקס. איר קענט אויך נוצן די int fscanf (FILE * fp, const char * פֿאָרמאַט, ...) פונקציע צו לייענען די שטריקל פֿון דער טעקע, אָבער עס סטאַפּס לייענען ווען איר טרעפן די ערשטער פּלאַץ און שורה ברעכן.
לעבעדיק בייַשפּיל
# אַרייַננעמען
ווען די אויבן קאָד איז קאַמפּיילד און עקסאַקיוטאַד, עס לייענט די טעקעס באשאפן אין די פריערדיקע אָפּטיילונג, פּראַדוסינג די פאלגענדע רעזולטאַטן:
1: דעם 2: איז טעסטינג פֿאַר fprintf ...
3: דאָס איז טעסטינג פֿאַר פפּוץ ...
ערשטער, דער מעטאָד פון fscanf() לייענט בלויז דעם .ווייַל עס ינקאַונטערז אַ פּלאַץ אין די צוריק. רגע, רופן Functon fgets () צו לייענען די רוען טייל ביז די סוף פון די שורה. צום סוף, רופן fgets () צו לייענען די רגע רודערן גאָר.
ביינערי איך / אָ פֿונקציע
די פאלגענדע צוויי פאַנגקשאַנז זענען געניצט פֿאַר ביינערי אַרייַנשרייַב און רעזולטאַט:
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 Ltd., אַ ווייכווארג טעכניש אָפּעראַציע. און די פירמע פֿאַר נעץ פֿאַרבונדענע ויסריכט (אַזאַ ווי: ACONU/ קאָמוניקאַציעONU/ ינטעליגענטONU/ פיברעONU, אאז"ו ו) האט צוזאַמען אַ שטאַרק ווייכווארג מאַנשאַפֿט, פֿאַר יעדער קונה קאַסטאַמייז די ויסשליסיק פאדערונגען וואס דאַרפֿן עס, אויך לאָזן אונדזער פּראָדוקטן מער ינטעליגענט און אַוואַנסירטע.