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; }