• Giga@hdv-tech.com
  • שירות מקוון 24 שעות ביממה:
    • 7189078c
    • sns03
    • 6660e33e
    • יוטיוב 拷贝
    • אינסטגרם

    C, קריאה וכתיבה של מסמכים

    זמן פרסום: 11 באוגוסט 2023

    מתאר כיצד מתכנת C יוצר, פותח וסוגר קובץ טקסט או קובץ בינארי.

    קובץ, פירושו סדרה של בתים, בין אם זה קובץ טקסט או קובץ בינארי, C Language, לא רק מספק את הגישה לפונקציות ברמה העליונה, אלא גם מספק את הקריאה הבסיסית (OS) לעיבוד קבצים בהתקן האחסון .פרק זה יסביר את הקריאות החשובות בניהול מסמכים.

    קובץ פתוח

    בדרך כלל באמצעות הפונקציה fopen () כדי ליצור קובץ חדש או לפתוח קובץ קיים, קריאה זו מאתחלת אובייקט מסוג FILE המכיל את כל המידע הדרוש לשליטה בזרימה.להלן אב הטיפוס של קריאת הפונקציה הזו:

    FILE *fopen ( const char * שם קובץ , const char * mode );

    כאן שם הקובץ הוא מחרוזת לשם קובץ, הערך של מצב הגישה יכול להיות אחד מהערכים הבאים:

    תבנית

    תיאור

    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 אם מתרחשת שגיאה.אתה יכול להשתמש בפונקציה הבאה כדי לכתוב מחרוזת המסתיימת ב-null לזרם:

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

    הפונקציה fputs () כותבת את המחרוזת s לזרם הפלט שאליו מצביע ה-fp.אם הכתיבה מצליחה, היא מחזירה ערך לא שלילי ואת ה-EOF אם מתרחשת שגיאה.אתה יכול גם להשתמש בפונקציה של int fprintf (FILE * fp, const char * format,...) כותב מחרוזת לקובץ.נסה את הדוגמה הבאה:

    הערה: ודא שיש לך ספריית 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 );}

    כאשר הקוד לעיל מורכב ומבוצע, הוא יוצר קובץ חדש test.txt בספריית / tmp.וכותב לשתי שורות באמצעות שתי פונקציות שונות.בוא נקרא את הקובץ הבא.

    קרא את הקובץ

    להלן הפונקציה הפשוטה ביותר לקריאת תו בודד מקובץ:

    int fgetc (FILE *fp);

    הפונקציה fgetc () קוראת תו מקובץ הקלט אליו מצביע ה-fp.ערך ההחזרה הוא תו הקריאה וה-EOF אם מתרחשת שגיאה.הפונקציה הבאה מאפשרת לך לקרוא מחרוזת מזרם:

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

    הפונקציה fgets () קוראת n-1 תווים מזרם הקלט המכוון על ידי fp.זה מעתיק את מחרוזת הקריאה ל-buffer buff ומוסיף תו null בסוף כדי לסיים את המחרוזת.

    אם פונקציה זו נתקלת בתו קו שבור '\ n' או EOF של סוף הקובץ לפני קריאת התו האחרון, אז היא חוזרת רק לתווי הקריאה, כולל מעברי שורה.אתה יכול גם להשתמש בפונקציה int fscanf (FILE * fp, const char * format,...) כדי לקרוא את המחרוזת מהקובץ, אבל היא מפסיקה לקרוא כאשר נתקלת ברווח ובמעבר השורה הראשון.

    דוגמה חיה

    #לִכלוֹלint main () { FILE *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 );}

    כאשר הקוד לעיל מורכב ומבוצע, הוא קורא את הקבצים שנוצרו בסעיף הקודם, ומפיק את התוצאות הבאות:

    1: זה 2: הוא בודק עבור fprintf...

    3: זה בדיקה עבור fputs...

    ראשית, השיטה של ​​fscanf() קוראת רק את This .כי היא נתקלת ברווח מאחור.שנית, קרא ל-functon 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 Ltd., פעולה טכנית בתוכנה.והחברה לציוד הקשור לרשת (כגון: ACONU/ תקשורתONU/ אינטליגנטיONU/ סיביםONUוכו') קיבץ צוות תוכנה רב עוצמה, לכל לקוח להתאים אישית את הדרישות הבלעדיות הזקוקות לכך, גם לאפשר למוצרים שלנו להיות יותר אינטליגנטיים ומתקדמים.



    web聊天