Avatar billede stufkan Nybegynder
22. december 2006 - 16:48 Der er 10 kommentarer og
1 løsning

brug af variabler i system()

Jeg er i gang med at lege lidt med system()
jeg kan fint bruge kommandoerne, men når jeg skal have brugerinput ved jeg ikke hvordan jeg skal gøre... Jeg har prøvet flere metoder men uden held...

ps. jeg bruger linux, hvis det har noget indflydelse..
Avatar billede nicklasw Nybegynder
22. december 2006 - 18:57 #1
du kan vist skele dem ad med | f eks.

system("program | dit_bruger_input")
Avatar billede stufkan Nybegynder
22. december 2006 - 19:18 #2
det virker ikke i linux da "|" er et (en?) pipe...
Avatar billede nicklasw Nybegynder
22. december 2006 - 19:51 #3
når, så kan jeg ikke hjælpe dig... sorry
Avatar billede bertelbrander Praktikant
22. december 2006 - 20:31 #4
#include <string>
#include <iostream>

int main()
{
  std::string FirstPart = "dir ";
  std::cout << "Skriv noget:";
  std::string Line;
  std::getline(std::cin, Line);
  system((FirstPart + Line).c_str());
}
Avatar billede stufkan Nybegynder
23. december 2006 - 01:06 #5
bertelbrander:
tusind tak, det virkede..

så mangler jeg bare lige en forklaring på hvad .c_str() helt præcist gør..
Avatar billede bertelbrander Praktikant
23. december 2006 - 01:10 #6
FirstPart og Line er std::string, så FirstPart + Line er også en std::string.
system forventer en const char pointer (const char *)
c_str() giver dig indholdet af en std::string i form af en const char *
Avatar billede stufkan Nybegynder
23. december 2006 - 01:15 #7
ok.. men det virer jo perfekt.. smid et svar så kan du få pointsne.
Avatar billede bertelbrander Praktikant
23. december 2006 - 01:16 #8
Jeg samler ikke på point.
Avatar billede stufkan Nybegynder
23. december 2006 - 01:19 #9
nå.. tusind tak for svaret alligevel ;D
Avatar billede arne_v Ekspert
23. december 2006 - 01:27 #10
hvis man er til den gammeldags måde så er der jo også:

char cmd[100];
sprintf(cmd,"dir %s",arg);
system(cmd);
Avatar billede stufkan Nybegynder
25. december 2006 - 17:43 #11
så må jeg vel selv tage pointsne..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester