Coding Newb verzweifelt(einfaches prog dass nich laufen will)

FrankyFlowers

Grünschnabel
EDIT: Für jene die mein Problem nicht verstehen, Ich versteh nicht warum der Compiler mir Sytax errors um die Ohren wirft.
wäre nett wenn mir da jmnd. unter die Arme greift.
P.S.: Benutze Dev ++


#include <iostream.h>
#include <stdio.h>

void main()
{
int x,y;
cout << " Geben sie den Startwert ein!" << endl;
cout << endl;
cin >> x;
cout << " Geben sie den Zielwert ein!" << endl;
cout << endl;
cin >> y;
while x<y
x++;
cout << " Ab zum Climax " << x << endl;
while x!=y
x--;
cout << " What comes up must come down " << x << endl;
getchar();
}
 
Zuletzt bearbeitet:
Wäre interessant in welcher Zeile und welchen Fehler der Compiler ausgibt, aber auf die Schnelle fallen mir die while-Schleifen auf:
Code:
while(x<y)

und

while(x!=y)
 
EDIT: Für jene die mein Problem nicht verstehen, Ich versteh nicht warum der Compiler mir Sytax errors um die Ohren wirft.

Ganz einfach, weil Dein Code fehlerhaft ist.

wäre nett wenn mir da jmnd. unter die Arme greift.

wäre ebenso nett wenn Du auch mal die Fehlrmeldungen mitposten könntest. Oder sollen wir jetzt raten was Dein Compiler dir sagt?


#include <iostream.h>
#include <stdio.h>

void main()
{
int x,y;
cout << " Geben sie den Startwert ein!" << endl;
cout << endl;
cin >> x;
cout << " Geben sie den Zielwert ein!" << endl;
cout << endl;
cin >> y;
while x<y
x++;
cout << " Ab zum Climax " << x << endl;
while x!=y
x--;
cout << " What comes up must come down " << x << endl;
getchar();
}


1. heisst das int main() und nciht void main()

2. Nimm dir mal ein GRUNDLAGENTUTORIAL oder ANFÄNGERBUCH und schau mal wie dort die while-Schleifen aussehen. Da steht sicher etwas ganz anderes als in Deinem code. z.B..
Code:
while (x<y) {
   x++;
   cout << " Ab zum Climax " << x << endl;
}
Jaja, ich weis, compiler sind kleinlich, kaum läft man mal ne Klamemr weg, schon sagen sie das einem...
 
Wenn du Klassen der STL benutzt, füge entweder am Anfang des Quellcodes ein using namespace std; ein oder arbeite mit Scope Resolution Operator:
C++:
std::cout<< " Geben sie den Startwert ein!" << std::endl;
Außerdem werden Includes der STL grundsätzlich ohne ".h" verwendet. Es heisst also:
C++:
#include <iostream>
Gruß
MCoder
 
Ok erst mal Vielen Dank für eure Korrekturvorschläge!
zum iostream kann ich nur sagen dass er nur die Version mit ".h" akzeptiert, genauso bei stdio.
Was der konkrete Nutzen von "using namespace std;" ist bleibt mir ein Rätsel..noch.

Das einzige was jetz noch stört wäre die Tatsache dass sich nachdem die Werte eingetragen werden, das Fenster sich sofort schliesst ( auf Grund meiner CPU natürlich im Sekundenbruchteil)
 
zum iostream kann ich nur sagen dass er nur die Version mit ".h" akzeptiert
Glück gehabt.

Was der konkrete Nutzen von "using namespace std;" ist bleibt mir ein Rätsel..noch.
Der dürfte erstmal unmittelbar darin bestehen, dass die Fehlermeldungen weg sind :D
Bei C++ kann man sogenannte Namensräume (namespace) festlegen, um die betreffenden Klassen nochmal zu kapseln. Das macht besonders bei Klassenbibliotheken Sinn, die weitergegeben werden, weil dann Namenskonflikte mit bereits bestehenden gleichnamigen Klassen vermieden werden. Mit "using namespace ..." wird diesen Prinzip unterlaufen, weil damit diese Kapselung aufgehoben wird. Deswegen finde ich es eigentlich besser, immer den Scope Resolution Operator zu verwenden, auch wenn's mehr Schreibarbeit ist.

Das einzige was jetz noch stört wäre die Tatsache dass sich nachdem die Werte eingetragen werden, das Fenster sich sofort schliesst ( auf Grund meiner CPU natürlich im Sekundenbruchteil)
Dein abschließendes getch() wird vermutlich überlaufen, weil der Eingabpuffer nicht leer ist. Versuch mal, ihn mit dieser Zeile direkt vor getch() zu leeren:
C++:
cin.ignore( numeric_limits< streamsize >::max(), '\n' );
Dafür benötigst du noch "#include <limits>".

Gruß
MCoder
 
Okay, nachdem ich nun diesen "limit" command eingefuegt habe, bleibt das Fenster offen.
Von daher schonmal super, nur blöd dass er meinen count down (cin << c--) total ignoriert.
Sprich bei 12 ist Ende.
Nach einigen cut and paste aktionen nach der try and error variante kam ich leider immer noch nicht zum Ziel.

Grüße Francisco Flores
 
Zurück