1 / 5
Dec 2018

Witam. Chciałbym napisać w konsoli prosty skrypt do zamykania systemu komenda “shutdown -s -t …”. Moje pytanie brzmi jak umieścić zmienna wpisana z klawiatury w taka komende:
system(“shutdown -s -t 3600”);

I zamiast 3600 chciałbym tam umieścić zmienna z cin >> czas; Jest jakieś nieskomplikowane rozwiązanie na to?

  • created

    Dec '18
  • last reply

    Dec '18
  • 4

    replies

  • 1.1k

    views

  • 3

    users

Jest. Wystarczy poszukać - zadając odpowiednie pytanie wyszukiwarce np:

"how to put variable to system() in c++" <-- in english
"c++ jak przekazać zmienną  do system()" <-- po polsku

W twoim wypadku możesz np tak:

    ....
    string czas;
    cin >> czas;
    system (("shutdown -s -t " + czas).c_str());
    ...

No I mnie Narbej uprzedziłeś.
Ja bym proponował coś bardziej odpornego na błędy użytkownika:

#include <bits/stdc++.h>
using namespace std;
int main() {
  unsigned int t = 2323;
  cin >> t;
  string s = "shutdown -s -t ";
  s += to_string(t);

  cout << s << endl;
  system(s.c_str());

  return 0;
}

Możliwe, że twój programik jest odporniejszy, ale…
W moim, jeżeli użytkownik poda bzdury to i tak shutdown “to zweryfikuje” i w przypadku błędu nie wykona się [nie używam na codzień windowsa - więc tylko tak przypuszczam ;-)]
Jeżeli chodzi o ulepszenie tego programiku, to warto pomyśleć o dodatkowym podawaniu danych w linii polecenia, domyślnych danych [już są] o wyświetlaniu helpu-podpowiedzi itd. Ale przecież już to wszystko jest i wszystko to ma systemowy shutdown.

O co więc chodzi pytającemu?

Jest dużo możliwości, powershell ma już chyba aliasy? Można umieścić ikonkę na pulpicie uruchamiającą dowolny programam a więc i shutdown itd

Jednak:

a już szczególnie cin >> czas to nie “prosty skrypt”. To mi się od razu skojarzyło z C++ a to nie jest [prosty] język skryptowy ;-).

Dzięki wielkie za pomoc :slight_smile: i różne rozwiązania. Praktyka Panowie… chodzi mi o praktykę dopiero zaczynam. Chciałbym napisać parę własnych linii kodu

Suggested Topics

Want to read more? Browse other topics in Tutoriale, poradniki or view latest topics.