000
07.03.2004, 16:57 Uhr
Cebinem
|
Hallo!!! Ich hab ein Problem bei meinem Programm. Ich möchte ein Progamm (Win32-Konsolenanwendung), das anzeigt, wenn man 1 eingibt, dass 1 der Buchstabe a ist und wenn man 2 eingibt, dass 2 der Buchstabe b ist. Nur mit 1 funktioniert es bestens, aber mit 1 und 2 klappt es schon nicht mehr. Ich weiß, dass mein Quellcode auch einfacher zu schreiben wäre, damit er das gleiche tut. Aber so wie er ist, sollte er eigentlich funktionieren. Wenn ich es kompiliere erscheint folgender Fehler:
error C2181: Ungueltiges 'else' ohne zugehoeriges 'if'
Komisch ist erstens nur, dass ein anderes Programm mit dem gleichen Quellcode (nur mit anderen Variablen- und Konstantennamen bzw. anderen Werten) beim Kompielieren keinen Fehler anzeigt. Zweitens ist komisch, dass das erste Programm trotz Fehlermeldung läuft, aber wenn ich 1 eingebe passiert nichts und gebe ich nochmal 1 ein erscheint (im DOS-Fenster) "a" = 1 und eine Zeile darunter Keine gueltige Zahl. Wenn ich 2 eingebe passiert auch nichts und gebe ich nochmal 2 ein erscheint "b" = 2. Dies liegt wahrscheinlich an der falschen Platzierung von else (glaub ich). Zur Veranschaulichung hab ich mal beide Programme (ohne und mit Fehlermeldung) aufgeschrieben. Ich hab schon alles mögliche probiert, aber das 2. Programm zeigt immer einen Fehler an.
Hier noch ein paar Daten von mir: - Betriebssystem: Windows XP Professional - Compiler: DEV-C++ 4.9.8.0 (hab auch schon VC++ 6.0 ausprobiert, geht auch nicht)
DANKE schon im vorraus für jegliche Hilfe!!!!!!!!!!!!!!!!!!!!!!!!!
MFG Cebinem
1. Programm (ohne Fehlermeldung)
C++: |
#include <iostream> using namespace std; int main()
{ float Geschwindigkeit; const float Limit = 30; cout << "Bitte geben sie die Geschwindigkeit ein: " << endl; cin >> Geschwindigkeit; cout << "" << endl; if (Geschwindigkeit > Limit) { if (Geschwindigkeit > Limit + 20) cout << "Zu schnell gefahren. Verwarnung und geringe Geldstrafe." << endl; else cout << "Zu schnell gefahren." << endl; } else cout << "Nicht zu schnell gefahren." << endl; cin.ignore(); cin.get(); return 0; }
|
2. Programm (mit Fehlermeldung)
C++: |
#include <iostream> using namespace std; int main() { float a, b; const float BuchstabeA = 1; const float BuchstabeB = 2; cout << "Bitte Zahl eingeben: " << endl; cin >> a; cin >> b; if (a == BuchstabeA) cout << "\"a\" = " << a <<" " << endl; { if (b == BuchstabeB) cout << "\"b\" = " << b <<" " << endl; else cout << "Keine gueltige Zahl." << endl; } else // hier wird der Fehler (siehe oben) angezeigt cout << "Keine gueltige Zahl." << endl; cin.ignore(); cin.get(); return 0; }
|
-- Jetzt sind wir hier, was jetzt geschieht, geschieht uns. - Anna Seghers |