Konsolenanwendung- finde Fehler nich! (Anfänger)

Hallo zusammen!
Ich hab ein kleines Programm geschrieben es funzt aba net. Der Quelltext:

#include
#include

using namespace std;

/*##############################################################################################################*/

//variabls
char cmd_int[20];
char cmd_str[20];

/*##############################################################################################################*/

int main ()
{

system(„title SilverMoonEngine“);

//entering of a command
enter_cmd:
cin >> cmd_int;
strcpy(cmd_str,cmd_int);

//out working of cmd
switch(cmd_str){
case ‚reconnect‘:
system(„reconnect.exe“);
case ‚exit‘:
goto exit;
}

else {
cout

Gruß mnapster

Hallo mnapster

Ich hab ein kleines Programm geschrieben es funzt aba net.

Soll vorkommen. Wenn du nun auch noch schreiben würdest, WAS da nicht funktioniert, täte man sich leichter, am besten durch kopieren der Fehlermeldung. Ich habe nun mal das Schlimmste entfernt, bei mir läuft es so:

#include 
#include 
#include 
using namespace std;

//variabls
char cmd\_str[20];

int main ()
{
 system("title SilverMoonEngine");
 do {
 cout \> cmd\_str;
 //out working of cmd
 // strings so vergleichen:
 // ! = Null Unterschied:
 if (!strcmp(cmd\_str, "reconnect")) {
 system("reconnect.exe");
 return 0;
 }
 else if (!strcmp(cmd\_str, "exit")) return 0;
 else cout 

Char-Zeiger kann man nur mit "strcmp()" vergleichen. Das "goto" würde ich ganz sein lassen, das resultiert nur in Spaghetti-Code.

lG
Martin B

lässt sich immer noch nicht kompilieren
Hallo Martin,

danke für deine Hilfe! Was hast du für einen Compiler? Ich hab den g++ Compiler von MinGW. Bei der Kompilierung über die cmd wird Folgendes ausgegeben:

http://www.kinggame.de/compiler.jpg

Diesen Teil versteh ich jetzt nicht mehr ganz:

 //out working of cmd
 // strings so vergleichen:
 // ! = Null Unterschied:
 if (!strcmp(cmd\_str, "reconnect")) {
 system("reconnect.exe");
 return 0;
 }
 else if (!strcmp(cmd\_str, "exit")) return 0;
 else cout 
Kannst du ihn nochmal erläutern?

Gruß mnapster

Howdy,

Diesen Teil versteh ich jetzt nicht mehr ganz:

//out working of cmd
// strings so vergleichen:
// ! = Null Unterschied:
if (!strcmp(cmd_str, „reconnect“)) {
system(„reconnect.exe“);
return 0;
}
else if (!strcmp(cmd_str, „exit“)) return 0;
else cout
Kannst du ihn nochmal erläutern?

Wie waer’s, wenn du erlaeuterst, weshalb auf der obigen letzten Zeile ein } steht … Diese matched naemlich mit keiner {.

Es steht i.ue. ja auch klar in der Fehlermeldung, dass vor der } danach ein while erwartet wird … Was soll der Compiler denn noch mehr sagen?

Gruss
norsemanna

Hallo norsemanna

Diesen Teil versteh ich jetzt nicht mehr ganz:

//out working of cmd
// strings so vergleichen:
// ! = Null Unterschied:
if (!strcmp(cmd_str, „reconnect“)) {
system(„reconnect.exe“);
return 0;
}
else if (!strcmp(cmd_str, „exit“)) return 0;
else cout
Kannst du ihn nochmal erläutern?

Wie waer’s, wenn du erlaeuterst, weshalb auf der obigen
letzten Zeile ein } steht … Diese matched naemlich mit
keiner {.

Weil der Kollege nicht die Genauigkeit hatte, die do-while etwa vollständig zu kopieren. Wenn Du Dir aber die kleine Mühe gemacht hättest, den Code aus meinem Beitrag weiter oben anzusehen, hättest Du bemerkt, dass dort alles passt.
Ein bißchen mehr Gründlichkeit, wenn ich bitten darf.
Wenn ich einen Code einstelle, lasse ich ihn immer vorher laufen, mit VC-6.

lG
Martin B

Hallo Martin,

danke für deine Hilfe! Was hast du für einen Compiler?

MS-VC 6.

Ich hab
den g++ Compiler von MinGW. Bei der Kompilierung über die cmd
wird Folgendes ausgegeben:

http://www.kinggame.de/compiler.jpg

Wohl mit Deiner Fassung, nicht mit meinem Code, stimmt’s?
Meine Fassung wurde auf fehlerfrei getrimmt.
Das sind die üblichen Syntax-Fehler. Wenn er z.B. schreibt

expected ';' before '}' token

heisst das, dass du das ‚;‘ in der Zeile zuvor vergessen hast. Die Lösung: dieses eintippen, und geht dann.

Diesen Teil versteh ich jetzt nicht mehr ganz:

Wir brauchen nur einen String, und der wird mit der Eingabe verglichen:

if (!strcmp(cmd_str, „reconnect“)) {
system(„reconnect.exe“);
return 0;
}

Wenn das erste if nicht zutrifft, geht er auf „else if“:

> else if (!strcmp(cmd\_str, "exit")) return 0;

Wenn das wieder nicht zutrifft, geht er auf „else“:

> else cout   
> Kannst du ihn nochmal erläutern?


Ich kann Dir auch ein paar Bücher über C++ empfehlen, vielleicht wäre das was für Dich? Dir fehlen offenbar die nötigsten Grundlagen.

lG
Martin B

} zuviel

 //out working of cmd
 // strings so vergleichen:
 // ! = Null Unterschied:
 if (!strcmp(cmd\_str, "reconnect")) {
 system("reconnect.exe");
 return 0;
 } 



> > Wie waer's, wenn du erlaeuterst, weshalb auf der obigen  
> > letzten Zeile ein } steht ... Diese matched naemlich mit  
> > keiner {.




> Weil der Kollege nicht die Genauigkeit hatte, die do-while  
> etwa **vollständig** zu kopieren. Wenn Du Dir aber die  
> kleine Mühe gemacht hättest, den Code aus meinem Beitrag  
> weiter oben anzusehen, hättest Du bemerkt, dass dort alles  
> passt.  
> Ein bißchen mehr Gründlichkeit, wenn ich bitten darf.  
> Wenn ich einen Code einstelle, lasse ich ihn immer vorher  
> laufen, mit VC-6.


Du hast ganz, ganz sicher eine eckige Klammer zu viel ... auch oben!
Hab weiter oben auch noch en Pfeil hingemacht. Trotzdem danke ... is ja net schlimm!

Gruß mnapster

Hallo mnapster

Trotzdem danke
… is ja net schlimm!

Wir werden’s überleben, :wink:

lG
Martin B