Benish |
Отправлено: 03.12.2004, 13:08 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 67
|
Господа, подскажите!
Пишу:
CODE |
#define VCL_IOSTREAM
#include<iostream.h>
#include <dstring.h>
AnsiString ASfstr;
......
while (!in.eof()) in >> ASfstr;
|
компилятор говорит:
operator>> not implemented для AnsiString
в хелпе говорится:
Note To utilize the C++ streaming operators (<< and>>) with AnsiString, you must use #include or #define VCL_IOSTREAM before #include . 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);
Видимо я чего-то не понимаю???? |
|
Benish |
Отправлено: 06.12.2004, 13:29 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 67
|
Хм, как я понимаю, надо было самому перегрузку писать, типа:
CODE |
istream & operator>>(istream & in, AnsiString & str)
{
std::string inputString;
in >> inputString;
str = AnsiString(inputString.c_str());
return in;
}
|
А чего же сами создатели AnsiString этого не сделали???? |
|
Георгий |
Отправлено: 06.12.2004, 18:41 |
|
Почетный железнодорожник
Группа: Модератор
Сообщений: 874
|
надо define VCL_IOSTREAM написать ДО любых #include, в том числе и до #include — тогда и заработает. |
|