C++ Shutdown mit Variable

08/27/2011 17:26 xazorstix#1
Hey e*pvpers,

Ich bin ziemlich neu in C++ und habe heute mal einen Shutdown- Manager erstellt.

PHP Code:
#include <iostream>
using namespace std;

int main()
{
    
int n;
    
cin >> n;
    
system("shutdown -s /f -t n");
    
cout << "Ihr PC wird in " << << " Sekunden heruntergefahren" << endl;
    
system("PAUSE");

Nach der Eingabe von n zeigt er mir die Syntax von dem shutdown command und "Ihr PC wird in n Sekunden heruntergefahren"(N wird richtig verwendet).

Wahrscheinlich liegt es daran das man die Variable nicht im system command verwenden kann.

Weiß jemand eine Lösung ?
08/27/2011 17:29 .BritainAndy#2
Probiers so:

Code:
char cmd[1024];
snprintf (cmd, 1024 - 1, "shutdown -t %i", zeit);
system (cmd);
08/27/2011 17:37 xazorstix#3
Er findet den Bezeichner snprintf nicht. Muss ich dazu etwas #includen und wenn ja was ?
08/27/2011 17:41 .BritainAndy#4
#include <stdio.h>
08/27/2011 17:47 xazorstix#5
PHP Code:
#include <iostream>
#include <stdio.h>
using namespace std;

int main()
{
    
int zeit;
    
char cmd[1024];
    
snprintf (cmd1024 1"shutdown -t %i"zeit);
    
system (cmd);

Fehler:
Code:
1>c:\users\torben\documents\visual studio 2008\projects\shutdown,\shutdown.cpp(9) : error C3861: "snprintf": Bezeichner wurde nicht gefunden.
08/27/2011 18:00 .BritainAndy#6
Also erstmal hat Zeit keinen Wert, du weißt Zeit nirgendwo einen Wert zu.

Ich glaube es ist _snprintf_s
08/27/2011 18:08 xazorstix#7
Aber wenn ich zeit nicht initialisiere gibt er mir den Fehlercode: 'zeit': nicht deklarierter Bezeichner aus.

Wenn ich 'zeit' durch einen Wert ersetzte kriege ich im cmd Fenster die Shutdownsyntax.

Wenn ich zeit initialisiere(int zeit; ) und zeit per "cin >> zeit; einen Wert zuweise kriege ich ebenfalls die Shutdownsyntax ausgegeben.
08/27/2011 18:11 ms​#8
Code:
std::stringstream ss(std::stringstream::in | std::stringstream::out);
ss << "shutdown -s /f -t " << n;
system(ss.str().c_str());
sstream dazu includen
08/27/2011 18:26 xazorstix#9
Das hab ich per Google auch schon gefunden hatte nur gehofft das es noch eine andere Methode dazu gibt. Scheint wohl nicht so zu sein.

Kriegt td ein thx für eure mühen.
08/27/2011 18:52 cooler7878#10
Also ich möchte dir einen Tipp geben : Benutze nicht die System Funktion sie ist unsicher!Des Weitern würde ich dir raten die Windows API zu benutzen ,da sich dir mit ihr weitere Möglichkeiten eröffnen so würde ich die ExitWindowsEx Funktion der System Funktion vorziehen!!Die Funktion findest du hier :[Only registered and activated users can see links. Click Here To Register...]
08/27/2011 19:22 xazorstix#11
Ok danke schön für den Tipp :)

Wie gesagt bin noch Anfänger und noch nicht mal mit dem Buch durch was ich hier liegen hab.