[ mariob @ 28.08.2006. 10:33 ] @
Problem je sledeci,
na ovaj kod:

AnsiString x;
ifstream source(imefajla);
source>>x;


kompajler izbacuje sledecu stvar: operator>> not implemented in type ifstream fo arguments of type AnsiString


kako da zaobidjem ovu neprijatnost, ako se uzme u obzir da moram ucitavatii rec po rec iz txt fajla. u hlepu sam nasao nesto sa includovanjem nekih .h-ova, ali to ne funkcionise
[ kiklop74 @ 28.08.2006. 14:50 ] @
[

[Ovu poruku je menjao kiklop74 dana 28.08.2006. u 17:16 GMT+1]
[ kiklop74 @ 28.08.2006. 14:52 ] @
Citat:
mariob: Problem je sledeci,
na ovaj kod:

AnsiString x;
ifstream source(imefajla);
source>>x;


kompajler izbacuje sledecu stvar: operator>> not implemented in type ifstream fo arguments of type AnsiString


Kompajler je u pravu. >> je operator kao sto su to i + - = itd. Ako neka klasa nema implementirane te metode kompajler ne moze da ih automatski generise. AnsiString nema nikakvu podrsku za STL stream klase ali je bar to lako dodati:

Code:

#include <vcl.h>
#include <iostream>
#include <fstream>
#include <string>

inline std::ifstream& operator>>(std::ifstream& s, AnsiString& str)
{
   std::string tempString;
   s >> tempString;
   str = tempString.c_str();
   return s;
}


Ovo je relativno primitivna implementacija ali posluzice. Za nesto bolje prouci literaturu.
[ itf @ 30.08.2006. 13:18 ] @
A zašto se uopće mučiti sa preoptrećenjem operatora >> kad se jednostavno može dodati i c_str()?
[ kiklop74 @ 03.09.2006. 16:25 ] @
Zaboravih da pomenem da najnoviji C++ Builder 2006 ima vec implementirane operatore >> << za AnsiString.