Forum: Hämta adress från fil sen köra med system

Forum huvudsida -> Programmering -> Hämta adress från fil sen köra med system

Sidor: 1

Till botten

oscar_ 13:04 - 22:a Oktober 2007 | Post #1
Medlem
Inlägg: 5


Skicka PM
Hej jag har ett program som man får skriva in adressen till sin mediaspelare sen får man välja en radio-kanal så ska mediaspelaren börja spela upp radio-kanalen. Men det funkar inte. Kod:
  1. #include <iostream> // includerar filer
  2. #include <stdlib.h>
  3. #include <windows.h>
  4. #include <string>
  5. #include <fstream>
  6.  
  7. using namespace std;
  8. using std::cout;
  9. using std::cin;
  10. using std::string;
  11.  
  12.  
  13. int main() {
  14. string val;
  15. string adress;
  16. char line[256];
  17. cout << "Har du använt detta program forut?(j/n) ";
  18. cin >> val;
  19. if(val == "n") {
  20. cout << "Okej, skriv adressen till din mediaspelare: ";
  21. cin >> adress;
  22. fstream conf;
  23. conf.open("config.txt",ios::out);
  24. conf << adress;
  25. conf.close();
  26. exit(1);
  27. }else if(val == "j") {
  28. ifstream file("config.txt");
  29. file.getline(line, 255);
  30. system("" << line << "http://www.sky.fm/mp3/hit70s.pls");
  31. file.close();
  32. }
  33. cin.get();
  34. cin.ignore();
  35. }

Som ni ser verkar det vara system() som verkar vara lite konstig.




Nissebosselasse 13:21 - 22:a Oktober 2007 | Post #2
Medlem
Inlägg: 490


Skicka PM
system tar en const char * som argument, den har med andra ord inte överlagrat operator << (som stringstream-klasserna), så därför kan du inte använda den på det sättet du har gjort.

Det du kan göra däremot är att skapa en ny string-variabel som håller hela raden, och skicka med den till system:

std::string path (line);
path += "http://www.sky.fm/mp3/hit70s.pls";
system (path.c_str ());

Lägg märke till att du måste anropa c_str (), för att få ut en const char * från string-objektet.

Här är en extragrej du kan tänka på: istället för att fråga användaren om han har använt programmet innan, testa och se om du kan öppna konfigurationsfilen. Om den inte finns, så ber du användaren att skriva in uppgifterna. På så vis behöver man inte svara ja/nej varje gång man startar det.

-------------------------
http://pushingcows.se
Gula Nallen



oscar_ 16:27 - 22:a Oktober 2007 | Post #3
Medlem
Inlägg: 5


Skicka PM
Tackar tackar!Smiley
Men varför: std::string path (line);? och varför path?


Senast redigerad 16:29 - 22:a Oktober 2007


jockepockee 20:02 - 22:a Oktober 2007 | Post #4
Medlem
Inlägg: 192


Skicka PM
jo, "std::string path (line);" skapar variabeln path som innehåller din line variabel, och "path += "http://www.sky.fm/mp3/hit70s.pls";" lägger din adress sist i path variabeln, och "system (path.c_str ());" anropar systemet att utföra det som nu står i path variabeln

blev det lättare nu då?

-------------------------





oscar_ 20:44 - 22:a Oktober 2007 | Post #5
Medlem
Inlägg: 5


Skicka PM
Ja, tack igen.




Sidor: 1

Forum huvudsida -> Programmering -> Hämta adress från fil sen köra med system
Atom feed

Du får inte posta i den här tråden | Till toppen