C++ programm problem
-
Liebe Community;
ich habe ich mich jetzt vorbereitend auf mein Studium, mit der Programmiersprache c++ beschäftigt. Meine ersten eigenen Programme laufen einwandfrei und ich habe mich jetzt daran gesetzt, ein Programm zuschreiben, welches meine Programme die ich zum Spielem am Computer habe bündelt und startet. Es soll eine Windows 32 Konsolenanwendung werden. Mein Quellcode sieht zur zeit so aus:
#include "stdafx.h" #include <conio.h> #include <iostream> using namespace std; int menu; int _tmain(int argc, _TCHAR* argv[]) { system ("COLOR 0c"); marke: do { cout<<"Meine wichtigen Programme.\n\n"; cout<<"(1) Teamspeak 3 \n"; cout<<"(2) Starcraft 2 \n"; cout<<"(3) Counterstrike Source \n"; cout<<"(4) Programm Schliessen \n\n"; cout<<"Deine Wahl?:"; cin>> menu; if (menu == 1){ system("C:\Program Files (x86)\TeamSpeak 3 Client\ts3client_win32.exe"); goto marke; } if (menu == 2){ } } while(menu == 4); { return 0; } }
Ich hab W7 64 bit vielleicht liegt es daran^^. Wäre aber blöd ich hoffe es liegt am Code.
Danke im Vorraus euer MaiTaniC
-
und was ist nun dein Problem?
außer das goto ein no go in der Programierung ist(ganz schlechter style)
while(menu == 4) -> was soll das bezwecken? sollte das nicht ein if werden?
wobei bei deiner Auswertung solltest du eine switch verwenden die lösst dein Problem der Auswertung sicher zufriedenstellender
#include "stdafx.h" #include <conio.h> #include <iostream> using namespace std; int menu; int _tmain(int argc, _TCHAR* argv[]) { system ("COLOR 0c"); do { cout<<"Meine wichtigen Programme.\n\n"; cout<<"(1) Teamspeak 3 \n"; cout<<"(2) Starcraft 2 \n"; cout<<"(3) Counterstrike Source \n"; cout<<"(4) Programm Schliessen \n\n"; cout<<"Deine Wahl?:"; cin>> menu; switch (menu) { case 1: system("C:\Program Files (x86)\TeamSpeak 3 Client\ts3client_win32.exe"); break; case 2: //Starte starkraft break; } } while(menu != 4); }
so mal in der art, hab das jetzt hier ohne test hingeschrieben also könnten noch fehler drin sein
-
xD stimmt mein Problem hätte ich dazuschreiben müssen..^^
Also das Programm läuft ohne Probleme nur startet es die Anwendung nicht. Der Pfad muss irgendwie falsch sein. Ich habs aber mehrmals überprüft und keinen Fehler gefunden.Danke für deine Antwort ich werde es gleich implementieren.
-
Bekommst du eine Fehlermeldung?
Daran sieht man meistens wo der Fehler liegtIch würds so machen:
#include "stdafx.h" #include <conio.h> #include <iostream> using namespace std; int menu; int _tmain(int argc, _TCHAR* argv[]) { system ("COLOR 0c"); while(true) //Wird permanent wiederholt ausser option 4 wird gewählt { cout <<"Meine wichtigen Programme." << endl << endl; //endl hießt endline, also Zeilenumbruch cout << "(1) Teamspeak 3" << endl; cout << "(2) Starcraft 2" << endl; cout << "(3) Counterstrike Source" << endl; cout << "(4) Programm Schliessen" << endl << endl; cout << "Deine Wahl?:"; cin >> menu; switch (menu) { case 1: system("C:\\Program Files (x86)\\TeamSpeak 3 Client\\ts3client_win32.exe"); break; case 2: //Starte Starcraft 2 break; case 3: //Starte Counterstrike Source break; case 4: exit(0); //Funktion um Programm zu beenden break; default: //Dies wird angesprungen, sollte die Eingabe keine der 'cases' zutreffen cout << "Bitte gib eine der angegebenen Zahlen ein." << endl; system("pause"); //Konsole wird gestoppt, bis der Benutzer eine beliebige Taste drückt system("cls"); // Die Konsole wird vom ASCII-Müll befreit ;) } } }
Das mit dem Programm starten liegt an dem Dateipfad, sieh mal hier rein
Gutes schaffen
-
Dank eurer Hilfe sieht das Programm jetzt schon um einiges besser aus.
Trotzdem kommt immernoch diese Fehlermeldung:Der Befehl "C:\Program" ist entweder falsch geschrieben oder konnte nicht gefunden werden.
-
Dann musst du auch die Leerzeichen escapen (mist, ich hätte das nicht wegeditieren sollen xD). Denn so glaubt die Konsole, du willst das ausführen:
C:\\Program mit Files mit (x86)\\TeamSpeak mit 3 und mit Client\\ts3client_win32.exe
Geht natürlich nicht, daher muss du alle Leerzeichen mit einem \ versehen was dann so aussieht:
C:\\Program\ Files\ (x86)\\TeamSpeak\ 3\ Client\\ts3client_win32.exe
-
Das klingt logisch :D.
Ich denke jetzt werde ich schon alleine darauf kommen.
Ihr habt mir wirklich viel geholfen und ich denke ich bin jetzt auf jedenfall schon ein Stückchen weiter.