AnsiString i stringstream (BCB)

AnsiString i stringstream (BCB)
  • Rejestracja: dni
  • Ostatnio: dni
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:

Kopiuj
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!

06
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2440
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:

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

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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.