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

"תבניות נקודה צפה לא מקושרות" היא שגיאת זמן ריצה של בורלנד (Borland C או C ++
"תבניות נקודה צפה לא מקושרות" היא שגיאת זמן ריצה של בורלנד (Borland C או C ++, Turbo C או C ++).

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

צעדים

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

תכנית אחת

  1. 1
    תוכנית המפרטת אחת למטה.
    • int main () {
      struct STUDENT {
      int rollno;
      char stdname [20];
      אחוז צף;
      } * 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 ++). המהדרים של בורלנד אינם מקשרים בספריית הנקודה הצפה (fp) אלא אם כן אנו זקוקים לה. לכן, בכוח עלינו להוסיף כל פונקציית נקודה צפה (fp) כשיש לנו "% f" או פורמטים אחרים של נקודה צפה (fp) בשיחות scanf () או printf ().
  2. 2
    כדי לתקן שגיאה זו, התקשר לפונקציה נקודה צפה (fp) או פשוט הוסף קישור לקובץ, המכיל לפחות פונקציית נקודה צפה (fp) אחת. לשם כך, פתרון גרוע יכול להיות להגדיר פונקציית דמה אי שם בקובץ המקור אך לא לקרוא לה:
    • ריק דמה (צף * א) {
      צוף ב = * א; // לבצע
      דמה של גישה צפה (& b); // קורא לפונקציה של נקודה צפה
      }
    • זה לא חייב להיות במודול עם התוכנית הראשית, כל עוד זה במודול שייכלל בקישור. לכן יש לכתוב את התוכנית שלעיל באופן הבא:
האם נתקלת אי פעם בשגיאת "פורמטים של נקודה צפה שאינה מקושרת" בתוכנית C או C ++
האם נתקלת אי פעם בשגיאת "פורמטים של נקודה צפה שאינה מקושרת" בתוכנית C או C ++?

תכנית המפרטת שניים

  1. 1
    רשימת התוכניות שתיים למטה.
    • ריק דמה (צף * א) {
      צוף ב = * א; // לבצע
      דמה של גישה צפה (& b); // קורא לפונקציה נקודה צפה
      int main () {
      struct STUDENT {
      int rollno;
      char stdname [20];
      אחוז צף;
      } * 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. 2
    אפשרות מנקה היא לאפשר צפו קישור ספרייה נקוד ב Turbo C / C ++ או Borland C / C ++ מן האפשרויות ומקשרות עבור ספרייה כדי לכלול נקודה צפה.
FacebookTwitterInstagramPinterestLinkedInGoogle+YoutubeRedditDribbbleBehanceGithubCodePenWhatsappEmail