• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Wstawianie zmiennych do system("");

Object Storage Arubacloud
0 głosów
167 wizyt
pytanie zadane 11 sierpnia 2016 w C i C++ przez Krzysztof Mochocki Początkujący (400 p.)

Witam zaczynam naukę z c++ i mam taki problem że chciałbym, aby mój program przekopiował z folderu A, do folderu B plik. Jest mały haczyk, ponieważ, ścieżka B jest zmienna w zależności od nazwy użytkownika. Nazwę użytkownika mam w zmiennej imie , ale nie umiem jej wstawić do polecenia system();

Chodzi mi o coś w stylu:
 

system("C:\\Users\\" + imie + "\\ProgramFiles...");

ale to nie działa w żaden sposób. Szukałem po necie coś w stylu składnia system() ale nic ciekawego nie znalazłem. Poza tym pobranie nazwy użytkownika znalazłem też na jakimś forum w takiej formie, ale rozumiem tylko I linijkę, jak ktoś by wytłumaczył, ale podesłał jakieś linki to byłoby super:

char name[ 100 ];
DWORD dwname = sizeof( name );
GetUserName( name, & dwname );

 

2 odpowiedzi

+2 głosów
odpowiedź 11 sierpnia 2016 przez MichałGNU Gaduła (4,330 p.)
Ja robię tak:

1. Program przeszukuje folder "Documents and Settings"/"Użytkownicy".

2. Jeśli jest jeden, nie ma problemu. Jeśli jest kilka użytkowników, to wtedy otwiera w tle Wiersz poleceń i ma już nazwę.

3. Kopiuje ją do zmiennej.

4. Wstawia tą zmienną.
komentarz 11 sierpnia 2016 przez Krzysztof Mochocki Początkujący (400 p.)
Właśnie mi chodzi jak wstawić tą zmienną, jak wygląda ta linijka?
Ten punkt 4
1
komentarz 11 sierpnia 2016 przez MichałGNU Gaduła (4,330 p.)

Nazwijmy tą zmienną user.

system("C:\\Users\\"<<user<<"\\ProgramFiles...");

 

komentarz 11 sierpnia 2016 przez Krzysztof Mochocki Początkujący (400 p.)
edycja 12 sierpnia 2016 przez Krzysztof Mochocki
Bardzo dziękuje, właśnie o to mi chodziło

EDIT: Jednak nie działa, jakąś biblioteke oprócz windows.h trzeba dorzucić?
komentarz 12 sierpnia 2016 przez smh Obywatel (1,940 p.)
system("C:\\Users\\"<<user<<"\\ProgramFiles...");

Gdzie widziałeś taką składnię?? Jak już, to (na przykład):

system(("C:/Users/"+user+"/ProgramFiles...").c_str());
// możesz też użyć ostringstream oraz <<

Inna sprawa, że system nie pochodzi z <windows.h>.

komentarz 16 sierpnia 2016 przez Krzysztof Mochocki Początkujący (400 p.)
Składnię jaką zacytowałeś to była wymyślona przeze mnie jako jedna z których testowałem, aby samemu rozwiązać problem, wpisywałem na oślep po prostu. A przy okazji to z jakiej biblioteki?
+1 głos
odpowiedź 12 sierpnia 2016 przez Krzysztof Mochocki Początkujący (400 p.)

Znalazłem rozwiązanie tego problemu:

string name;

system("C:\\Users\\ \name \\Desktop\\");

 

Podobne pytania

0 głosów
2 odpowiedzi 155 wizyt
0 głosów
1 odpowiedź 235 wizyt
pytanie zadane 25 października 2015 w C i C++ przez Mavimix Dyskutant (8,390 p.)

92,570 zapytań

141,422 odpowiedzi

319,643 komentarzy

61,958 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...