Problem mit einem eher kleinem Programm



  • Hi, mein Programm, das eignetlich nur ein Übungsprogramm sein sollte, wird ohne Fehler compiliert und verlinkt, bei der Ausführung wird jedoch ein Fehler ausgegeben. Der Code ist wie folgt:

    #include <iostream>
    #include <cstdlib>
    
    int main()
    {
      char a[20], b[20], c[20];
      int slave[4];
    
      std::cout << "Geben Sie eine Zahl ein: " << std::flush;
      std::cin.get(a, sizeof(a));
      slave[0] = std::atoi(a);
      std::cout << "Geben Sie eine Zahl ein: " << std::flush;
      std::cin.get(b, sizeof(b));
      slave[1] = std::atoi(b);
      std::cout << "Geben Sie eine Zahl ein: " << std::flush;
      std::cin.get(c, sizeof(c));
      slave[2] = std::atoi(c);
      slave[3] = ((slave[0]+10) * slave[1]) / slave[2];
      std::cout << "Ausgabe: " << slave[3] << endl;
    }
    

    Der Fehler ist ein "unknown software exception". Kann mir da wer helfen?



  • Der Fehler liegt beim cin.get, er wartet nur einmal auf eine Eingabe und am gibt es am Ende eine Division durch 0.
    Nimm einfach ganz normal cin<<a;



  • Ich habe jetzt einfach die Funktion cin.ignore() benutzt und die Abfrage macht er jetzt mehrere Male.

    #include <iostream>
    #include <cstdlib>
    
    int main()
    {
      char a[20];
      int slave[4];
    
      for(int i = 0 ; i < 3 ; ++i)
      {
      std::cout << "Geben Sie eine Zahl ein: " << std::flush;
      std::cin.get(a,sizeof(a));
      slave[i] = std::atoi(a);
      std::cin.ignore();
      }
      slave[3] = ((slave[0]+10) * slave[1]) / slave[2];
      std::cout << "Ausgabe: " << slave[3] << endl;
    }
    

Anmelden zum Antworten