Skocz do zawartości

Zablokowane Wpisanie string do system()


FanXX

Rekomendowane odpowiedzi

Witajcie, robie w C++ swój launcher do bukkita, zrobiłem już bardzo dużo, lecz w opcjach zaawansowanych mam problem z taką rzeczą:

 

wlacz: {system("java -Xmx" >> opcjanext >> "M -Xms" >> opcjanext >> "M -jar bukkit.jar");}

( strzałki brałem << i tak >> )

 

chciałem dokonać tego, że gdy w cin >> opcjanext; wpisze np 1024 to uruchomi sie jak by komenda CMD gdzie "opcjanext" to wartosc 1024. Nie wiem czy da się wpisać wartości liczbowe ze zmiennych do system(). Da się tak, albo jaki robie błąd? Dziekuje za pomoc!

 

 

wtyczki i zmienne:

 

#include <iostream>

#include <windows.h>

#include <string>

using namespace std;

int opcja;

int opcjanext;

string tn;

 

error kompilatora:

 

C:\Users\Paffcio\Desktop\Minecraft Bukkit 1.4.6 Pro\cache\main.cpp In function 'int main()':

47 32 C:\Users\Paffcio\Desktop\Minecraft Bukkit 1.4.6 Pro\cache\main.cpp [Error] invalid operands of types 'const char [10]' and 'int' to binary 'operator>>'

C:\Users\Paffcio\Desktop\Minecraft Bukkit 1.4.6 Pro\cache\Makefile.win [Error] [main.o] Error 1 (if this is the only error: please check your library includes)

Odnośnik do komentarza
Udostępnij na innych stronach

Do łączenia stringów używamy +.

>> jest przeciążonym operatorem dla klasy cin, a << dla cout.

string opcjanext;
cin>>opcjanext;
string cmd="java -Xmx" + opcjanext + "M -Xms" + opcjanext + "M -jar bukkit.jar";
system(cmd.c_str());

Owszem, obiekt 'string' posiada przeładowany operator '+'. Ale jeżeli potrzebne nam jest łączenie łańcuchów jak i konwersja danych - można użyć w tym celu stringstream.

Odnośnik do komentarza
Udostępnij na innych stronach

Przed main{} wpisałem string cmd; ale znów kompilator czepia się tego:

 

string cmd="java -Xmx" + opcjanext + "M -Xms" + opcjanext + "M -jar bukkit.jar";

 

a dokładnie plusa przed "M -Xms" nie rozumiem tego, log:

 

C:\Users\Paffcio\Desktop\Minecraft Bukkit 1.4.6 Pro\cache\main.cpp In function 'int main()':

 

50 42 C:\Users\Paffcio\Desktop\Minecraft Bukkit 1.4.6 Pro\cache\main.cpp [Error] invalid operands of types 'const char*' and 'const char [7]' to binary 'operator+' gdy dwa razy kliknę na to, wskazuje kreska na "M -Xms"

 

C:\Users\Paffcio\Desktop\Minecraft Bukkit 1.4.6 Pro\cache\Makefile.win [Error] [main.o] Error 1 (if this is the only error: please check your library includes)

 

 

Jeszcze obczaje to i dam edit

PS: Pierwszy raz mam taki problem z nim którego nie moge rozwiązać :( (jeśli trzeba mogę dać element klasy gdzie występuje pare linijek (5-7)

Odnośnik do komentarza
Udostępnij na innych stronach

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...