printf Formatierungsfrage

Gast #1817472
Lesenswert?
• ▲
▼
Hallo zusammen,

ich wünsche euch einen schönen Samstag vormittag.

Könnt ihr mir sagen, warum folgende Zeile

double d=5, e=8;


printf ("%f durch %f = %f",d,e,d/e  );

"   ? durch ? = ?   "      ausgibt ?

Wie bekomme ich denn die Fragezeichen weg?

Das war schon alles.

Ich danke Euch im Vorraus sehr für die Hilfe.

viele Grüße,

Matthias.
Gast #1817497
Lesenswert?
• ▲
▼
Hallo,

vielen Dank für Deine Antwort.

doch es geht noch immer nicht.  Als Ausgabe gibt es nur ein 
Fragezeichen.

Der rechnet irgendwie nicht in dem Format.

Muss ich noch eine Library includen?

Grüße, MAtthias.
Gast #1817515
Lesenswert?
• ▲
▼
Oh, entschuldigung, dass ich hdas alles gart nicht mitgeteilt habe.
bin hier noch anfänger in dem Forum, deswegen.

STK 500 mit Atmega 8515 Chip

AVR Studio4.18

hier mal der ganze code, bin gespannt, woran der Fehler liegen soll



#include <avr/io.h>
#include <stdlib.h>
#include "string.h"


// #include <util/delay.h>    // wenn das aktiviert, dann sendet er gar 
nichts, wißt ihr warum? brauche ich doch  für delay funktionen, nicht 
wahr?

#ifndef F_CPU

#warning "F_CPU war noch nicht definiert, wird nun nachgeholt"


#define F_CPU 8000000UL

#endif



#define BAUD 4800UL      // Baudrate

// Berechnungen
#define UBRR_VAL ((F_CPU+BAUD*8)/(BAUD*16)-1)   // clever runden
#define BAUD_REAL (F_CPU/(16*(UBRR_VAL+1)))     // Reale Baudrate
#define BAUD_ERROR ((BAUD_REAL*1000)/BAUD) // Fehler in Promille, 1000 = 
kein Fehler.


#if ((BAUD_ERROR<990) || (BAUD_ERROR>1010))
  #error Systematischer Fehler der Baudrate grösser 1% und damit zu 
hoch!
#endif



void uart_init(void)
{
  UCSRB |= (1<<TXEN);  // UART TX einschalten
  UCSRC |= (1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0);  // Asynchron 8N1

  UBRRH = UBRR_VAL >> 8;
  UBRRL = UBRR_VAL & 0xFF;
}




int uart_putchar(unsigned char c)        //diese Funktion bekommt ein 
einzelnes Zeichen zugeschickt und gibt dieses aus
{



    while (!(UCSRA & (1<<UDRE)))  /* warten bis Senden moeglich */
    {
    }

    UDR = c;                      /* sende Zeichen */
    return 0;
}





int main(void)
{




   uart_init();



fdevopen (uart_putchar, NULL,0);

  int a= 5,b =8;
  double i=5.0/8.0 ;






  printf ("%d x %d = %d",a,b,a*b  );
  printf ( "\r\n" );
  printf ("%d durch %d = %d",a,b,a/b  );
  printf ( "\r\n" );

  printf ("%d durch %d = %4.2f",a,b,i  );    //  funktioniert so noch 
nicht, nur Fragezeichen
  printf ( "\r\n" );





   while (1)
    {
      ;
   }

return 0;
}

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.