[Linker error] undefined reference to `prinftf'

satyja

Grünschnabel
vielleicht kann mir hier ja jemand helfen... sehe gerade nicht durch...

unsere aufgabe ist:
Erstellen Sie ein ausführlich dokumentiertes C-Programm, das folgendes leistet:
Der Benutzer soll erst eine positive ganze Zahl, die als Programmstatuswort zu interpretieren ist, einlesen.
Anschließend soll er folgende Menüpunkte angeboten bekommen
a) Statusbits setzen (Bits in einzulesendem Positionsbereich auf 1 setzen)
b) Statusbits zurücksetzen (Bits in einzulesendem Positionsbereich auf 0 setzen)
c) Statusbits umkippen (Bits in einzulesendem Positionsbereich von 0 auf 1 und von 1 auf 0 setzen.)
d) Statuswort bitweise ausgeben
e) Ende
Verwenden Sie für diese Aufgaben immer, wo es möglich ist, Bitoperationen. Es dürfen keine Vektoren verwandt werden.

mein code:

Code:
/* Binärzahlen
Erstellungsdatum: 09.04.05 */

#include<stdio.h>

main(){

   int  istatuswort1=0, istatuswort2=0, itemp=0;
   int  ibereichanf=0, ibereichende=0;
   char cmenuewahl=' ';
   int  iende=0, ianz, i;

printf   ("Programm zur Ausgabe einer Dezimalzahl in Binaerdarstellung.\n" 
          "Zusaetzlich Bitoperationen ausfuerbar!\n");
fflush(stdin);           
printf ("Bitte geben Sie eine ganze Zahl ein\n");

scanf("%d", &istatuswort1);

  do
  {
    prinftf(" Menue\n"
           "________\n\n\n"
           "a) Statusbits setzen (auf 1)\n"
           "b) Statusbits zuruecksetzen (auf 0 setzen)\n"
           "c) Statusbits umkippen\n"
           "d) Statuswort bitweise ausgeben\n"
           "e) Ende\n\n");

fflush(stdin);
         
   cmenuewahl=getchar();
  
   switch (cmenuewahl)
   {
      case 'a':
         /*Schleife zum Einlesen von dem Startwert des Positionsbereichs*/
         do
         {
            printf("Bitte geben Sie einen Startwert fuer den\n"
                   "Positionsbereich der Statusbits an. Dieser\n"
                   "Wert muss zwischen 1 und %d sein!\n\n",
                   (sizeof(int)*8-1));
                   fflush(stdin);
            ianz=scanf("%d", &ibereichanf);
         }
         while ((ianz==0) || (ibereichanf < 1) || (ibereichanf > sizeof(int)*8-1));  
        
         /*Schleife zum Einlesen von dem Endwert des Positionsbereichs*/
         do
         {
            printf("Bitte geben Sie einen Endwert fuer den\n"
                   "Positionsbereich der Statusbits an. Dieser\n"
                   "Wert muss zwischen %d und %d sein!\n\n",
                   ibereichanf, sizeof (int)*8);
                   fflush(stdin);
            ianz=scanf("%d", &ibereichende);
         }
         while ((ianz==0) || (ibereichende <= ibereichanf) || (ibereichende > sizeof(int)*8));    
         
         /*Statusbits auf 1 setzen*/
         for (i=ibereichanf--; i <= ibereichende; i++)
         {
            itemp = itemp << 1;
            itemp = itemp | 1;
         }
         itemp = itemp << ibereichanf;
         istatuswort1 = istatuswort1 | itemp;
         
         break;
         
      case 'b':
       /*Schleife zum Einlesen von dem Startwert des Positionsbereichs*/
         do
         {
            printf("Bitte geben Sie einen Startwert fuer den\n"
                   "Positionsbereich der Statusbits an. Dieser\n"
                   "Wert muss zwischen 1 und %d sein!\n\n",
                   (sizeof(int)*8-1));
                   fflush(stdin);
            ianz=scanf("%d", &ibereichanf);
         }
         while ((ianz==0) || (ibereichanf < 1) || (ibereichanf > sizeof(int)*8-1));  
        
         /*Schleife zum Einlesen von dem Endwert des Positionsbereichs*/
         do
         {
            printf("Bitte geben Sie einen Endwert fuer den\n"
                   "Positionsbereich der Statusbits an. Dieser\n"
                   "Wert muss zwischen %d und %d sein!\n\n",
                   ibereichanf, sizeof (int)*8);
                   fflush(stdin);
            ianz=scanf("%d", &ibereichende);
         }
         while ((ianz==0) || (ibereichende <= ibereichanf) || (ibereichende > sizeof(int)*8));    
        
         
         /*Statusbits zuruecksetzen /auf Null setzen*/
         for (i=ibereichanf--; i<= ibereichende; i++)
         {
            itemp = itemp << 1;
            itemp = itemp | 1;
         }
         itemp = ~itemp;
         itemp = itemp << ibereichanf;
         istatuswort1 = istatuswort1 & itemp;
         
      case 'c':
 /*Schleife zum Einlesen von dem Startwert des Positionsbereichs*/
         do
         {
            printf("Bitte geben Sie einen Startwert fuer den\n"
                   "Positionsbereich der Statusbits an. Dieser\n"
                   "Wert muss zwischen 1 und %d sein!\n\n",
                   (sizeof(int)*8-1));
                   fflush(stdin);
            ianz=scanf("%d", &ibereichanf);
         }
         while ((ianz==0) || (ibereichanf < 1) || (ibereichanf > sizeof(int)*8-1));  
        
         /*Schleife zum Einlesen von dem Endwert des Positionsbereichs*/
         do
         {
            printf("Bitte geben Sie einen Endwert fuer den\n"
                   "Positionsbereich der Statusbits an. Dieser\n"
                   "Wert muss zwischen %d und %d sein!\n\n",
                   ibereichanf, sizeof (int)*8);
                   fflush(stdin);
            ianz=scanf("%d", &ibereichende);
         }
         while ((ianz==0) || (ibereichende <= ibereichanf) || (ibereichende > sizeof(int)*8));    
        
         /*Statusbits umkippen*/
         for(i=ibereichanf--; i<=ibereichende; i++)
         {
            itemp = itemp << 1;
            itemp = itemp | 1;
         }
         itemp = itemp << ibereichanf;
         istatuswort1=istatuswort1^itemp;
         break;
         
      case 'd':
      
 /*Schleife zum Einlesen von dem Startwert des Positionsbereichs*/
         do
         {
            printf("Bitte geben Sie einen Startwert fuer den\n"
                   "Positionsbereich der Statusbits an. Dieser\n"
                   "Wert muss zwischen 1 und %d sein!\n\n",
                   (sizeof(int)*8-1));
                   fflush(stdin);
            ianz=scanf("%d", &ibereichanf);
         }
         while ((ianz==0) || (ibereichanf < 1) || (ibereichanf > sizeof(int)*8-1));  
        
         /*Schleife zum Einlesen von dem Endwert des Positionsbereichs*/
         do
         {
            printf("Bitte geben Sie einen Endwert fuer den\n"
                   "Positionsbereich der Statusbits an. Dieser\n"
                   "Wert muss zwischen %d und %d sein!\n\n",
                   ibereichanf, sizeof (int)*8);
                   fflush(stdin);
            ianz=scanf("%d", &ibereichende);
         }
         while ((ianz==0) || (ibereichende <= ibereichanf) || (ibereichende > sizeof(int)*8));    
        
         
         /*Statuswort bitweise ausgeben*/
         
         for (i=sizeof(istatuswort1)*8-1;i>=0;i--)
         {
           /*printf("%u, (istatuswort & ((1 << (i+1))-1))>>i);*/
           printf("%n", (istatuswort1>>i)&1);
           
         }
         printf("\n\n");
         break;
         
      case 'e':
         iende=1;
         printf ("Das Programm wird beendet");
         break;
      
      default:
         printf ("Ihre Eingabe war falsch!\n");
       
   }  
  }while (iende!=1);

return 0;
}

vielen dank schon mal.

gruß
satyja
 
moin


Du hast prinftf aufgerufen es heisst aber printf...
Also das eine f weg und gut.

Der Fehler ist übrigens da woe du das Menu zeichnest.


mfg
umbrasaxum
 
oh man. danke... habe die ganze zeit gesucht und es nicht gefunden.

ärgerlich ist es, dass das ganze progg trotzdem nicht läuft... :-(
 
Zurück