Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > C/C++
You last visited: Today at 03:41

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Externes Programm starten per Variable

Discussion on Externes Programm starten per Variable within the C/C++ forum part of the Coders Den category.

Reply
 
Old   #1
 
marykillsjane's Avatar
 
elite*gold: 0
Join Date: Sep 2010
Posts: 1,909
Received Thanks: 522
Externes Programm starten per Variable

Hallo Leute ;
Ich wollte mal fragen ob es in C++ eine möglichkeit gibt um z.b.
über cin einen string abzuspeichern und diesen dann an an eine funktion zu übergeben die das eingegebene (z.b. notepad.exe ) ausführt?
Hier mal ein code beispiel wie ich mir das ganze vorstelle ( ohne includes usw):

string eingabe;
cout << "Geben sie den Namen des Programmes << endl;
cout << " welches sie starten möchten ein " << endl,
cin >> eingabe ;
// Ich kenne bis jetzt nur die Anweisung System("Name des Programmes")
//wenn ich nun aber versuche die Variable eingabe an System zu übergeben :
System(eingabe);
//kommt nur eine Fehlermeldung beim compilen wäre nett wenn jmd mir erklären könnte wie //ich das Problem lösen kann.
marykillsjane is offline  
Old 09/30/2012, 21:42   #2
 
elite*gold: 0
Join Date: Apr 2006
Posts: 6,597
Received Thanks: 1,830
ja wenn du mit windows arbeitest geht das mit der winapi zb mit der funktion:
gibt auch noch andere möglichkeiten mit der winapi sowas zu realisieren.

Wenn du bis jetzt noch nichts mit der winapi gemacht hast dann lies dich zuerst bisschen ein ,denn zum einstieg ist CreateProcess wahrscheinlich die falsche funktion x)
Medix is offline  
Thanks
1 User
Old 09/30/2012, 21:45   #3
 
elite*gold: 0
Join Date: Jun 2008
Posts: 378
Received Thanks: 88
Quote:
Originally Posted by marykillsjane View Post
System(eingabe.c_str());
wenn du system beibehalten möchtest
werner100100 is offline  
Thanks
1 User
Old 10/01/2012, 06:47   #4
 
marykillsjane's Avatar
 
elite*gold: 0
Join Date: Sep 2010
Posts: 1,909
Received Thanks: 522
Das Beispiel mit system klappt sehr gut vielen dank.
Wäre nur noch interessant zu wissen fürm mich was macht das .c_str bei system?
marykillsjane is offline  
Old 10/01/2012, 12:11   #5
 
elite*gold: 0
Join Date: Apr 2006
Posts: 6,597
Received Thanks: 1,830


Quote:
Get C string equivalent
Generates a null-terminated sequence of characters (c-string) with the same content as the string object and returns it as a pointer to an array of characters.

A terminating null character is automatically appended.
Medix is offline  
Thanks
1 User
Old 10/01/2012, 16:31   #6
 
elite*gold: 0
Join Date: Dec 2011
Posts: 5
Received Thanks: 1
Quote:
Originally Posted by marykillsjane View Post
Das Beispiel mit system klappt sehr gut vielen dank.
Wäre nur noch interessant zu wissen fürm mich was macht das .c_str bei system?
Jetzt mal leicht gesagt du kennst doch sicherlich die c strings : char Array[20]

Nun du hast bei der Variable jetzt 21 Charackter zur verfügen weil Der Computer bei der 0 anfängt zu zählen gut. Nun willst aber nicht alle 21 Charackter benuzen sondern nur 4 dann wird nach dem Array[3] alle restlichen Werte auf Null gesetzt also Array[4] bis Array[20] = 0; Das nennt sich Zero terminated. ( Habe es jetzt nur im Kopf wie ich es damals gelernt habe ). Kann aber auch sein dass ich mich irre, bitte korrigieren wenn was falsch ist.

Und anscheinend nimmt system() keine STRINGS an sonder nur char Arrays das machst du mit .c_str es in einen C(char) str(string) auch (array) gennant umwandeln.
Fawkess123 is offline  
Thanks
1 User
Old 10/01/2012, 19:07   #7
 
elite*gold: 5
Join Date: Sep 2006
Posts: 385
Received Thanks: 218
Quote:
Originally Posted by Fawkess123 View Post
Jetzt mal leicht gesagt du kennst doch sicherlich die c strings : char Array[20]

Nun du hast bei der Variable jetzt 21 Charackter zur verfügen weil Der Computer bei der 0 anfängt zu zählen gut. Nun willst aber nicht alle 21 Charackter benuzen sondern nur 4 dann wird nach dem Array[3] alle restlichen Werte auf Null gesetzt also Array[4] bis Array[20] = 0; Das nennt sich Zero terminated. ( Habe es jetzt nur im Kopf wie ich es damals gelernt habe ).
Was? Wenn du ein Array mit 20 Elementen allokierst, dann erhälst du auch nur ein Array mit 20 Elementen. C-Strings sind hier keine Ausnahme. Des weiteren musst du nicht den gesamten nicht benötigten Teil des C-Strings mit Nullen füllen, um ihn zu kürzen.

Code:
char* foo = "Hello World"; //C-String mit 12 Elementen
char bar[] = "123"; //ist das gleiche wie:
char _bar[4] = "123";
//char meow[2] = "12"; //Das hier geht erst gar nicht
Die Null gehört zum String, du musst sie jedoch nur nicht selber hinschreiben, sprich der Compiler verlängert dir nicht das Array.


Quote:
Originally Posted by Fawkess123 View Post
Und anscheinend nimmt system() keine STRINGS an sonder nur char Arrays das machst du mit .c_str es in einen C(char) str(string) auch (array) gennant umwandeln.
c_str() wandelt den string nicht um, es gibt einen konstanten Pointer auf das zugrundeliegende Char-Array zurück. Intern ist std::string nämlich auch nur ein Char-Array.
Nightblizard is offline  
Reply


Similar Threads Similar Threads
Externes Teamspeak 3 aufnahme Programm
02/13/2012 - Technical Support - 2 Replies
Hallo Leute! Ich suche momentan ein Programm, womit man den Ganzen Ton , den man hört ( Ts Game etc...) aufnehmen kann. Ich habe natürlich gegoogelt und das programm No23 Recorder ausprobiert! Vielen Dank für eure Hilfe!
[Visual Basic 2010]Externes Programm als Admin Ausführen
06/27/2011 - .NET Languages - 3 Replies
Hey, wie der Titel schon Sagt: Ich suche einen Code oder Hilfe wie ich ein Externes Programm wie z.B. 'Warrock' als Admin ausführe, wenn man auf den Button klickt. P.S: Ihr solltet nicht kommen mit: Rechtsklick->Als Admin ausführen
Externes Programm über WoW-Addon öffnen? [LUA]
01/14/2011 - General Coding - 4 Replies
Ist es möglich mit Lua ein WoW-Addon zu schreiben, welches eine lokale .exe-Datei außerhalb des World of Warcraf-Ordners aufrufen (also öffnen) kann? Und wenn ja, wie? lg Deividas
programm um wr 2mal zu starten
10/18/2010 - WarRock - 5 Replies
Hallo such ein programm damit ich warrock 2 mal starten kann
Überprüfen ob Variable Eine Variable ist
10/16/2010 - AutoIt - 26 Replies
Hey leute ich wollte fragen ob/wie man überprüfen kann ob eine Variable eine Variable ist z.b. so $k = 1 $i = $k if $i = VARIABLE Then msgbox(0,'$i ist eine variable!!','') endif PS:Wp releast man nochma TuT (z.b. für metin2??)



All times are GMT +1. The time now is 03:41.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.