Taschenrechner programmierung Problem



  • ich versuch mich grad in c++ einzuarbeiten wegen Uni und erstem Semester
    sollen Taschenrechner programmieren und ich hab jetzt ein Problem wo ich das nimma kapiere.
    Bin noch am Anfang vom Programm also nicht wundern fehlt noch einiges.

    Mein Code bis jetzt

    #include <stdio.h>
    main ()
    
    {
    
    char zeichen;
    char c;
    float Erg=0;
    float Wert1;
    float Wert2;
    
    printf(":");
    scanf("%f", &Wert1);
    
    printf(":");
    scanf("%c %c %f", &c, &zeichen, &Wert2);
    
    switch( zeichen )
    
    	{
    
    	case '+':
    
    		Erg = Wert1 + Wert2;
    		printf("%f", Erg);
    
            break;
        case '-':
            //irgendwas
            break;
        case '*':
            //irgendwas
            break;
        case '/':
            //irgendwas
            break;
    	}
    }
    

    Das problem ist diese Zeilen Kombi

    15: printf(":");
    16: scanf("%c %c %f", &c, &zeichen, &Wert2);

    Ich hatte Zeile 16 erst so

    16: scanf("%c %f", &zeichen, &Wert2);

    also ohne das einlesen der Variablen "c"
    Da hat das Programm dann nicht funktioniert.

    Also wenn ich
    10
    +10
    machen wollte ist er immer aus dem programm gesprungen
    erst nachdem ich das "c" mit eingelesen hab im scanf lief das addieren.
    Hab das "c" aus der Musterlösung genommen blos hab ich absolut kein plan wieso ich das mit einlesen muss im scanf
    Wäre nett wenn mir jemand ne anfängerfreundliche Erklärung geben könnte

    vielen dank auf jeden Fall schonmal im voraus.
    Mir schon fast peinlich wegen sowas kleinem hier zu fragen 😞

    Grüsse

    Christian

    PS. eventuelle andere Fehler bitte noch nicht ansprechen will erstmal selbst probieren wenn ich mit weiteren Problemen konfrontiert werde da ich für weitere abläufe irgendwas im Moment noch falsch haben sollte.



  • Ihr sollt euch doch in C++ einarbeiten ... das hat net soo viel mit C++ zu tun ...

    #include <iostream>
    
    int main()
    {
    	std::cout << "Taschenrechner V1.0" << std::endl;
    	std::cout << "Input: " << std::flush;
    }
    

    usw ... das ist reines C++ ...



  • ist "scanf" etwa kein reines C++ ?



  • Hmm gehört zum C-Std. D.h. heißt der Header ja auch <cstdio>



  • wie wäre es mit einem delete dieses problemes 😛 ? schließlich steht es auch im ansi c und zwei postings sind unübersichtlich


Anmelden zum Antworten