AnsiString i stringstream (BCB)

0

Witam. Natknąłem się na problem. W Builderze nie działa string tylko String a to znowu jest AnsiString, którego stringstream nie przyjmuje. W kodzie:

String linia, polecenie;
	stringstream komenda;
	int wartosc;

	linia = frmMain->eCmd->Text;
	frmMain->mConsole->Lines->Add("-- " + linia);
	komenda << linia.c_str();
	komenda >> polecenie.c_str();
   	 frmMain->mConsole->Lines->Add(polecenie);
	if (polecenie != "biegnij")
	{
		frmMain->mConsole->Lines->Add("Błąd! Nieznane polecenie.");
		return 1;
	}
	komenda >> wartosc;

...stringstream przetrzymuje "biegnij" bo sprawdzałem, to czemu if nie działa? (znaczy jest info o błędzie i nic) Zauważyłem też, że w tym wypadku stringstream zamiast jedno słowo wyrzuca wszystkie jakie ma do "polecenie". Pomocy!

0
Z dokumentacji VCL-a napisał(a)

To utilize the C++ streaming operators (<< and >>) with AnsiString, you must use #include <iostream> or #define VCL_IOSTREAM before #include <dstring.h>. This occurs automatically if you include vcl.h or system.h and defines the operators as follows:

     ostream& operator << (ostream& os, const AnsiString& arg);

     istream& operator >> (istream& is, AnsiString& arg);

1 użytkowników online, w tym zalogowanych: 0, gości: 1