C Schleife funkt nicht

Nerd187

Newbie
Registriert
Jan. 2019
Beiträge
1
Hallo Tag zusanmen:
Ich habe eine whileSchleife in C erstellt die daraus auygelegt ist eine Funktion sooft zu wiederholen bis man eine andere Taste betaetigt.Ich wollte Abfragen lassen mit getch() falls er die Taste j drückt ,dass er neue Werte berechnen kann.Das Problem ist ,dass er einmal rechnet und danach plötzlich nach dem ergebnis stoppt.

Quellcode
Code:
#include <stdio.h>
#include <conio.h>

int main()
{
int x;
int y;
int erg;
char ja='j';
//char nein ='n';
    
    
      
 
        printf("Geben Sie ein Wert für x ein: ");
        fflush(stdin);
        scanf("%i",&x);
        
        
        
        printf("Geben Sie ein Wert für y ein: ");
        fflush(stdin);
        scanf("%i",&y);
        
        
        erg=x+y;
        
        printf("\nErgebnis:%i",erg);
        
        
      printf("Wollen Sie noch ein wert berechnrn drücken sie j");
    
    
    while(ja==getch())
   {
    printf("Geben Sie ein Wert für x ein: ");
        fflush(stdin);
        scanf("%i",&x);
        
        
        
         printf("\nGeben Sie ein Wert für y    ein: ");
        fflush(stdin);
        scanf("%i",&y);
        
        
        erg=x+y;
        
        printf("\nErgebnis:%i",erg);
        
     }
    
    }
 
getch() liest den Input einmal aus, da nach deiner Schleife kein weiterer Input da ist, ist deine Bedingung nicht mehr wahr und die Schleife brich ab. Du kannst ja nach deinem letzten printf in der Schleife noch mal das Ergebnis von geth() ausgeben, dann solltest du es besser verstehen.
 
- fflush() ist für output streams gedacht, input flushen ist undefined behaviour.
- Es ist besser, nicht direkt scanf(), sondern erst fgets() und dann sscanf() zu verwenden.
- Unter tcc und Win 10 funktioniert der Code sogar, wie von dir gewünscht (Allerdings wird der Text "
Wollen Sie noch ein wert berechnrn drücken sie j" logischerweise nur einmal angezeigt, da nicht in der Schleife)
- Es heißt "einen Wert"! Bitte, das ist doch Akkusativ männlich, es ist ja "der Wert" und nicht "das Wert".
 
Zurück
Oben