Variablen in System("") einbinden
Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen
-
-
-
C-Quellcode
- #include <cstdlib>
- #include <string>
- #include <iostream>
- using namespace std;
- int main(int argc, char *argv[])
- {
- int asd;
- cout<<"Bitte Sekundenzahl angeben! Nach dieser Angabe wird der PC Heruntergefahren!\n\n";
- cin>>asd;
- string str= "start Shutdown.exe -s -t ";
- str += asd;
- system(str.c_str());
- system("PAUSE > NUL");
- return 0;
- }
Ich hab da jetzt mal versucht mit nem STD::STRING zu arbeiten, funktioniert aber irgendwie auch nicht.
Wäre Dankbar, wenn jemand eine funktionierende Variante postet.
MfG: eriX -
eriX schrieb:
C-Quellcode
- #include <cstdlib>
- #include <string>
- #include <iostream>
- using namespace std;
- int main(int argc, char *argv[])
- {
- int asd;
- cout<<"Bitte Sekundenzahl angeben! Nach dieser Angabe wird der PC Heruntergefahren!\n\n";
- cin>>asd;
- string str= "start Shutdown.exe -s -t ";
- str += asd;
- system(str.c_str());
- system("PAUSE > NUL");
- return 0;
- }
Ich hab da jetzt mal versucht mit nem STD::STRING zu arbeiten, funktioniert aber irgendwie auch nicht.
Wäre Dankbar, wenn jemand eine funktionierende Variante postet.
MfG: eriX
start Shutdown.exe -s -t <-- Was soll denn dieses "start"?
C-Quellcode
Hab es mit mkdir und rm probiert - beides erfolgreich. -
-
Quellcode
Anmerkung ob das mit + funktoniert bin ich skeptisch =/ ich verwende für dynamische inhalte meistenseine funktion kann aber grad net (ned viel Zeit), hoffe ich konnte helfen! -
Allerdings wird das nicht funktionieren, da der Systembefehl ein Char-Array entegegen nimmt. du musst also buf zu vorgabe hinzufügen (vorgabe+=buf) und dann bei System(vorgabe.c_str()) angeben.
Aber das ist genau die Variante, die zu Beginn gepostet wurde. Die sollte dann auch funktionieren. -
in dem ersten post verstehe ich das nicht ganz?
system("PAUSE > NUL");
kenn nur normales pause?
hmm... haste auch wieder recht :O kannst du mal infos geben was genau nicht klappt (Fehlermeldungen, runtime beispiele, debuginfos)? -
-
Dann schreibst "std::string" statt "string"There's no place like 127.0.0.1
-
Hab jetzt kein Linux ( ? ) aufgespielt.
Was haltet ihr hiervon:
Quellcode
MfG -
Linux?
Unter Linux heißt das sicher nicht "shutdown.EXE" - höchstens "shutdown"There's no place like 127.0.0.1 -
Muss er dann die "SchiesS NiedeR.ExE" auch noch selbst schreiben
Oder wie hat die sich hier eingeschlichen
Man beachte die Gross-und Kleinschreibung -
Noch kleine Änderungen:
Quellcode
- #include <iostream>
- #include <cstdio>
- #include <string>
- int main()
- {
- std::cout << "Befehl: ";
- std::string buf, vorgabe="shutdown "; // vor dem letzten ": Space oder nicht Space, das ist hier die Frage ;)
- std::cin >> buf;
- vorgabe.append(buf);
- std::system(vorgabe.c_str()); // wenn schon STL, dann ...
- return 0;
- }
Ein Leerzeichen hat mich mal ein paar Tage ins Grübeln gebracht - sieht man ja auch auf den ersten Blick
Manchmal muss es da sein, manchmal darf es da nicht sein und in anderen Fällen ist es einfach egal.
hoffe, das ich nix mehr übersehen hab.Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von bcc-fan ()
-
Danke bcc-fan
Der Code:
Quellcode
Hat funktioniert!
Nun muss man aber die Zahl in Sekunden eingeben. Kann man den Wert vor dem Ausführen mal 60 rechnen?
Ich hatte ja an buf = buf * 60; gedacht... aber das funktioniert nicht. Wie kann ich das noch ändern? -
Um Castings kommst du wohl nicht rum.
Das Eifnachste hier wäre, einen Integerwert einzulesen, den zu multiplizieren mit 60 und schließlich in einen String zu casten. -
Ja, gute idee!
Da hab ich jetzt den Artikel gefunden: cplusplus.com/doc/tutorial/typecasting.html
Bei ganz normalen int oder char wäre das kein Problem, denke ich.
Könnt ihr mir da jetzt bitte nochmal weiterhelfen? -
-
So hab ichs bis jetzt gemacht:
Quellcode
- #include <cstdlib>
- #include <iostream>
- using namespace std;
- bool checkIfInt(const char* text)
- {
- for (int i = 0; i<strlen(text); ++i)
- {
- if (!isdigit(text[i]))
- {
- return false;
- }
- }
- return true;
- }
- int main(int argc, char *argv[])
- {
- string asd;
- cout<<"Bitte Sekundenzahl angeben! Nach dieser Angabe wird der PC Heruntergefahren!\n\n";
- cin>>asd;
- if (checkIfInt(asd.c_str()))
- {
- string str= "start shutdown.exe -s -t ";
- str += asd;
- system((str).c_str());
- }
- else
- {
- cout<<"Der eingegebene Text ist keine Zahl. Der PC wird nicht heruntergefahren.\n";
- }
- system("PAUSE > NUL");
- return 0;
- }
Wie und wo muss ich dann welchen code einfügen?
@vorgänger: hat leider nicht funktioniert! -
Ich habs gemerkt
Hier mein Vorschlag:
Quellcode
There's no place like 127.0.0.1
-
Teilen
- Facebook 0
- Twitter 0
- Google Plus 0
- Reddit 0
-
Benutzer online 14
14 Besucher
-
Tags
- http:
- HTML
- einbinden
- www
- SQL
- cpp
- easy-coding
- Python
- Visual
- befehl
- Text
- variable
- Linux
- ruby
- Code
- zahlen
- Datei
- C
- System
- C#
- ausgabe
- count
- Variablen
- variabel
- char
- englisch
- using
- std
- cin
- cout
- pause\
- sytem
- ausgaben
- systembefehle
- space
- sys
- shutdown
- namespace
- Umgebungsvariablen
- bcc32
- variablenwert
- cstdio
- einbidnen
- variablen-in-system-einbinden-
- stdbool
- std::system
- vorgaben
- systemvorgabe
- 2054
- System::Xml
- c%2B%2B%20system%20einbinden
- variablentypen