כיצד לתקן שגיאת "תבניות נקודה צפה לא מקושרות" בטורבו C / בורלנד סי

מְחַבֵּר: Janice Evans
תאריך הבריאה: 1 יולי 2021
תאריך עדכון: 12 מאי 2024
Anonim
כיצד לתקן שגיאת "תבניות נקודה צפה לא מקושרות" בטורבו C / בורלנד סי - Knowledges
כיצד לתקן שגיאת "תבניות נקודה צפה לא מקושרות" בטורבו C / בורלנד סי - Knowledges

תוֹכֶן

סעיפים אחרים

האם נתקלת אי פעם ב- "פורמטים של נקודה צפה לא מקושרים" שגיאה בתוכנית C או C ++? להלן מובאת הסיבה לשגיאה זו וגם הפיתרון לה. שימו לב: המהדר המשמש הוא Turbo C / Borland C.

צעדים

ניתוח רשימת התוכניות הבאה ולאחר בנייה מוצלחת של התוכנית, מופיעה שגיאת זמן הריצה הנ"ל.

תוכנית אחת

  1. רשימת התוכנית אחת למטה.
    • int main () {
      struct תלמיד {
      int rollno;
      char stdname;
      אחוז צף;
      } * s1;
      printf (" הזן פרטי תלמיד:");
      scanf ("% d% s% f",
      & s1-> rollno,
      s1-> stdname,
      & s1-> אחוזים);
      printf (" n הפרטים שהוזנו הם:");
      printf ("רול:% d, שם:% s, אחוז:% f",
      s1-> rollno,
      s1-> stdname,
      s1-> אחוזים);
      getch ();
      החזר 0;
      }
    • תוכנית C הנ"ל נכתבת ומורכבת בטורבו C. כאשר תוכנית זו מבוצעת, המהדר מציג את השגיאה הבאה,
      Scanf: פורמטים של נקודה צפה לא מקושרים והתוכנית מסתיימת באופן חריג.
    • זה קורה בגלל המשתנה * s1, המהווה מצביע למבנה "תלמיד", בו הגדיר מתכנת משתנה "צף" בשם "אחוז". פירוש הדבר ששגיאה נמצאה כאשר התוכנית ניסתה לקרוא ערך עבור סוג נתונים צף באמצעות מצביע למבנה. כאשר התוכנית מבוצעת, המהדר הציג שגיאת זמן ריצה בשורת scanf ("% f", ...% s1-> אחוז).
    • זה יכול לקרות כאשר אנו משתמשים ב- Borland C / C ++ או TurboC / C ++ כמהדר. "פורמטים של נקודה צפה לא מקושרים" היא שגיאת זמן ריצה של בורלנד (Borland C או C ++, Turbo C או C ++). המהדרים של בורלנד אינם מקשרים בספריית הנקודה הצפה (f-p) אלא אם כן אנו זקוקים לה. לכן בכוח עלינו להוסיף כל פונקציית נקודה צפה (f-p) כשיש לנו "% f" או פורמטים אחרים של נקודה צפה (f-p) בשיחות scanf () או printf ().

  2. כדי לתקן שגיאה זו, התקשר לפונקציה נקודה צפה (f-p) או פשוט הוסף קישור לקובץ המכיל לפחות פונקציית נקודה-צפה אחת (f-p). לשם כך, פיתרון גרוע יכול להיות להגדיר פונקציית דמה אי שם בקובץ המקור, אך לא לקרוא לה:
    • בטל ריק (צף * א) {
      לצוף b = * a; // לבצע גישה צפה
      דמה (& b); // קורא לפונקציה של נקודה צפה
      }
    • זה לא חייב להיות במודול עם התוכנית הראשית, כל עוד זה במודול שייכלל בקישור. לכן יש לכתוב את התוכנית שלעיל באופן הבא:

תכנית רישום שתיים


  1. רשימת התוכנית שתיים למטה.
    • בטל ריק (צף * א) {
      לצוף b = * a; // לבצע גישה צפה
      דמה (& b); // קורא לפונקציה של נקודה צפה
      }
      int main () {
      struct תלמיד {
      int rollno;
      char stdname;
      אחוז צף;
      } * s1;
      printf (" הזן פרטי תלמיד:");
      scanf ("% d% s% f",
      & s1-> rollno,
      s1-> stdname,
      s1-> אחוזים);
      printf (" n הפרטים שהוזנו הם:");
      printf ("רול:% d, שם:% s, אחוז:% f",
      s1-> rollno,
      s1-> stdname,
      s1-> אחוזים)
      getch ();
      החזר 0;
      }
    • בתוכנית שלעיל, "דמה" היא פונקציה המוגדרת על ידי המשתמש. אתה יכול לתת כל שם לפונקציה זו במקום "דמה". באופן דומה, "a" ו- "b" הם שמות משתנים, שאותם תוכלו לשנות.
    • הסיבה לכך היא כי מהדרי טורבו ו- Borland C / C ++ לעיתים משאירים תמיכה בנקודות צפות ומשתמשים בגרסת נקודה לא צפה של printf ו- scanf כדי לחסוך מקום במערכות קטנות יותר. קריאת הדמה לפונקציה של נקודה צפה תאלץ את המהדר לטעון את התמיכה בנקודה צפה ולפתור את הבעיה המקורית.

  2. אפשרות נקייה יותר היא לאפשר קישור ספריית נקודות צפות בטורבו C / C ++ או Borland C / C ++ מאפשרויות קישור לספרייה לכלול נקודה צפה.

שאלות ותשובות קהילתיות


טיפים

איך לכתוב דוא"ל רשמי

Monica Porter

מאי 2024

מאמר זה נכתב בשיתוף עורכינו וחוקרים מוסמכים כדי להבטיח את דיוק התוכן ושלמותו. ישנם 11 הפניות שצוטטו במאמר זה, הן בתחתית העמוד.צוות ניהול התוכן של בוחן בקפידה את עבודת צוות העריכה כדי להבטיח שכל פריט ע...

כיצד להפעיל את

Monica Porter

מאי 2024

מאמר זה נכתב בשיתוף עורכינו וחוקרים מוסמכים כדי להבטיח את דיוק התוכן ושלמותו. ישנם 13 הפניות שצוטטו במאמר זה, הן בתחתית העמוד.צוות ניהול התוכן של בוחן בקפידה את עבודת צוות העריכה כדי להבטיח שכל פריט ע...

הודעות חדשות