scanf printf Ausgabe

OP #5171325
Hallo,

ich habe eine Frage. Und zwar will ich mit meinem nachfolgenden Code vom 
H-Terminal eine Zahl. Zb. 12 einlesen, den Wert der Variable i zuweisen, 
dann wieder  den Wert von i geteilt durch 2 im Terminal wieder ausgeben.

Um das richtige Ergebnis zu erhalten muss ich zuerst die Zahl die ich 
teilen möchte eingeben. Und mit Enter bestätigen (Senden) dann passiert 
noch nichts, wenn ich jetzt erneut a eingebe und mit Enter Sende kommt 
das richtige Ergebnis im Received Data Fenster (BILD)

es sollte aber so sein, das ich 12 eingebe (Enter Senden) und danach 
automatisch das Ergebnis angezeigt wird.

Könnte mir Bitte jemand sagen was ich hier falsch mache ?
1
 
2
 #define F_CPU 16000000UL
3
 #define BAUD  9600UL
4
 
5
 #include <util/delay.h>
6
 #include <string.h>
7
 #include <stdlib.h>
8
 #include <stdio.h>
9
 #include <ctype.h>
10
 #include <avr/io.h>
11
 
12
 //Initialisierung und die Funktionen uart_putchar und art_getchar
13
 #include "serial2.h"
14
 
15
 //Eintrag von uart_putchar und uart_getchar als
16
 //Standard IO
17
 FILE mystdout = FDEV_SETUP_STREAM(uart_putchar, uart_getchar, _FDEV_SETUP_RW);
18
 
19
 int main(void)
20
 {
21
   
22
   
23
   //Initialisierung (aus serial2.h) aufrufen
24
   uart_init(F_CPU, BAUD);
25
   
26
   //Elementare IO Funktionen als Standard IO eintragen
27
   stdout = stdin = &mystdout;
28
   
29
  
30
    while (1) 
31
    {
32
    
33
  int i;
34
    
35
     printf("\r\nGeben Sie eine Zahl ein:     ");
36
     scanf("%d", &i); //&i ist die Adresse von i
37
     printf("\r\nDer halbe Wert ist %d", i / 2);
38
     _delay_ms(500);
39
    }
40
}
Angehängte Dateien:
Gast
Ändere mal die Auswahl bei "Send on enter" in den "Input options" unten 
(über der Eingabezeile.

Das beeinflusst, was tatsächlich gesendet wird, wenn Du Enter drückst. 
Im Moment sendest Du wortwörtlich garnichts, so das scanf erst eine Zahl 
als vollständig akzeptiert, wenn Du ein Zeichen, das keine Dezimalziffer 
darstellt, sendest.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 9 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.