Ako opraviť chybu „Nie sú prepojené formáty s pohyblivou rádovou čiarkou“ v Turbo C/ Borland C?

„Formáty s pohyblivou rádovou čiarkou nie sú prepojené“ je chyba pri spustení programu Borland
„Formáty s pohyblivou rádovou čiarkou nie sú prepojené“ je chyba pri spustení programu Borland (Borland C alebo C ++, Turbo C alebo C ++).

Stretli ste sa niekedy v programe C alebo C ++ s chybou „formáty s pohyblivou rádovou čiarkou nie sú prepojené“? Nasleduje dôvod tejto chyby a tiež jej riešenie. Prosím Poznámka: kompilátor používa Turbo C / Borland C.

Kroky

Analyzujte nasledujúci zoznam programov a po úspešnom zostavení programu sa objaví vyššie uvedená chyba pri spustení.

PROGRAM JEDEN

  1. 1
    Program so zoznamom nižšie.
    • int main () {
      struct STUDENT {
      int rollno;
      char stdname [20];
      plávajúce percento;
      } *s1;
      printf ("\ Zadajte údaje o študentovi:");
      scanf ("%d%s%f",
      & s1-> rollno,
      s1-> stdname,
      & s1-> percento);
      printf ("\ nZadané údaje sú:");
      printf ("Rolka:%d, Názov:%s, Percento:%f",
      s1-> rollno,
      s1-> stdname,
      s1-> percento);
      getch ();
      návrat 0;
      }
    • Vyššie uvedený program C je napísaný a kompilovaný v Turbo C. Keď je tento program spustený, kompilátor zobrazí nasledujúcu chybu
      Scanf: formáty s pohyblivou rádovou čiarkou nie sú prepojené a program sa abnormálne ukončí.
    • Stáva sa to kvôli premennej *s1, ktorá je ukazovateľom na štruktúru „STUDENT“, v ktorej programátor definoval „plávajúcu“ premennú s názvom „percento“. Znamená to, že sa vyskytla chyba, keď sa program pokúsil prečítať hodnotu pre dátový typ typu float pomocou ukazovateľa na štruktúru. Keď je program spustený, kompilátor zobrazil chybu runtime na riadku scanf ("%f",...%s1-> percento).
    • Môže sa to stať, keď ako kompilátor použijeme Borland C/ C ++ alebo TurboC/ C ++. „Formáty s pohyblivou rádovou čiarkou nie sú prepojené“ je chyba pri spustení programu Borland (Borland C alebo C ++, Turbo C alebo C ++). Borlandove kompilátory sa neprepojujú v knižnici s pohyblivou rádovou čiarkou (fp), pokiaľ to nepotrebujeme. Preto násilím musíme pridať akúkoľvek funkciu s pohyblivou rádovou čiarkou (fp), keď máme vo vzťahoch scanf () alebo printf () k dispozícii „%f“ alebo iné formáty s pohyblivou rádovou čiarkou (fp).
  2. 2
    Ak chcete túto chybu opraviť, zavolajte funkciu s pohyblivou rádovou čiarkou (fp) alebo jednoducho pridajte odkaz na súbor, ktorý obsahuje aspoň jednu funkciu s pohyblivou rádovou čiarkou (fp). Za týmto účelom by hackerským riešením mohlo byť definovanie fiktívnej funkcie niekde v zdrojovom súbore, ale nevolajte to:
    • void dummy (float *a) {
      float b = *a; // vykonajte nejakú
      figurínu s plávajúcim prístupom (& b); // volanie funkcie s pohyblivou rádovou čiarkou
      }
    • Nemusí to byť v module s hlavným programom, pokiaľ je to v module, ktorý bude súčasťou odkazu. Preto by mal byť vyššie uvedený program napísaný nasledovne:
Stretli ste sa niekedy v programe C alebo C ++ s chybou „formáty s pohyblivou rádovou čiarkou
Stretli ste sa niekedy v programe C alebo C ++ s chybou „formáty s pohyblivou rádovou čiarkou nie sú prepojené“?

PROGRAM ZOZNAM DVAJ

  1. 1
    Program so zoznamom dvoch nižšie.
    • void dummy (float *a) {
      float b = *a; // vykonajte nejakú
      figurínu s plávajúcim prístupom (& b); // volanie s plávajúcou čiarkou funkcie
      int main () {
      struct STUDENT {
      int rollno;
      char stdname [20];
      plávajúce percento;
      } *s1;
      printf ("\ Zadajte údaje o študentovi:");
      scanf ("%d%s%f",
      & s1-> rollno,
      s1-> stdname,
      s1-> percento);
      printf ("\ nZadané detaily sú:");
      printf ("Rolka:%d, Názov:%s, Percento:%f",
      s1-> rollno,
      s1-> stdname,
      s1-> percento)
      getch ();
      návrat 0;
      }
    • Vo vyššie uvedenom programe je „dummy“ používateľom definovanou funkciou. Namiesto „figuríny“ môžete tejto funkcii dať akékoľvek meno. Podobne „a“ a „b“ sú názvy premenných, ktoré môžete zmeniť.
    • Je to kvôli tomu, že kompilátory Turbo a Borland C/ C ++ niekedy vynechávajú podporu s pohyblivou rádovou čiarkou a používajú verziu printf a scanf bez pohyblivej rádovej čiarky, aby ušetrili miesto na menších systémoch. Falošné volanie funkcie s pohyblivou rádovou čiarkou prinúti kompilátor načítať podporu s pohyblivou rádovou čiarkou a vyriešiť pôvodný problém.
  2. 2
    Možnosť čistič je umožniť plávajúcou desatinnou čiarkou knižnica prepojenie v turbo C / C ++ alebo Borland C / C ++ z linker možnosti pre knižnice zahŕňajú pohyblivou rádovou čiarkou.
FacebookTwitterInstagramPinterestLinkedInGoogle+YoutubeRedditDribbbleBehanceGithubCodePenWhatsappEmail